作為常用的指令碼語言,簡單從語法上做下對比。
luapython
shell
注釋–或--[[ --]]
# 或『』『』『』或"""
#運算子
~= 無位運算 and or not
// :整除, ** :次冪 位運算 @ 關係運算子1
!= in (not in) is (is not)
-gt,-lt,-eq,-ge,-le,-ne,=,-z,-f,-n,算術運算子略
資料型別
nil boolean number string
table function 預設全域性變數
區域性變數用local 修飾
-條件結構
if – then elseif – then --else end
0 ,空串 當做真處理,nil 和 false當做假處理
if --: elif–: else:
if – then elif – then else fi
迴圈結構
for/while ***
do **塊 end
for/while ***x:
**塊for/while ***x
do **塊 done
switch無無
case *** in x) ***x;; esac
break有有
有continue無有
有函式function ***(a,b) **塊 end
def ***(a,b):**塊
***()
呼叫方式
***(1,2)
***(1,2)
*** 1 2
$# 引數數量,$1 引數1
返回值可返回多個值,可少於或多於接收項2
可返回多值,但要求個數與接收項一致
使用$?單獨獲取,返回單個值
資料長度
#data
len(data)
$ 陣列長度 $
列印輸出
echo
單雙引號
無特殊區別
無特殊區別
單引號內容原樣輸出,雙引號可輸出變數值
獲取引數型別
type(x)
type(x)–下標
從1開始,下標0無效
從0開始
從0開始
句尾標點無無
無類似api
string.char()
string.byte()
string.gsub()
chr()
ord()
str.replace()
–引入包
require
import
-lua 中 not 0 為false,邏輯假中只有false 和 nil ,python 關係運算中 a < b == c 等價於 a < b and b ==c 比較特殊 ↩︎
lua 函式返回值的約定與限制,處於賦值序列前面,只會取第乙個值, 處於末尾,則系統會盡量多的取返回值多則去掉,少則補nil,處在表示式中則只取第乙個值第一位,則只會取返回值的第乙個值,python 則只能賦值與函式返回值相等的數量,且 不支援這種情況 a,b,c = fun(),5 ↩︎
lua python對比學習
lua nil 空 boolean false和nil為假 number 數值 string 字串 table 表 function 方法 thread 執行緒 userdata python none 空 boolean false和none為假 number 數值 string 字串 list ...
Shell及 子Shell關係
linux登陸主機後,在執行script之前,其實我們已經處於乙個shell中,即login shell 它是將來要執行script的父shell,如root賬號預設為 bin bash linux下每個賬號都可以自定義login shell,在 etc passwd檔案中,login shell定...
Linux學習筆記 shell及shell命令
一 基本命令語法 1.快捷鍵 2.同行多命令的排列 3.設定別名 alias 別名 需要定義別名的命令 如 alias ll ls al 注意 4.輸出重定向 如 ls my.txt 瀏覽當前目錄的資訊,但是結果不再輸出到終端顯示,而是儲存到了my.txt檔案中 和 的區別 會覆蓋檔案原內容,則是在...