Lua Python及Shell語法異同點

2021-09-13 15:45:45 字數 1637 閱讀 5319

作為常用的指令碼語言,簡單從語法上做下對比。

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)

$ 陣列長度 $

列印輸出

print

print

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檔案中 和 的區別 會覆蓋檔案原內容,則是在...