shell語言是解釋型非強型別語言. linux shell不區分變數的型別, 一切都是字串型別, 變數名不能是數字開頭. 變數長度沒有限制, 變數可以進行比較操作和整數操作. 整數操作取決於字串的值是否是數字.
變數的引用需要用$
, 且$varname
一般和$
等效, 但是注意有時變數可能會出現混淆的情況, 此時應該用第二種. shell中的所有變數都是全域性的, 即乙個shell程序只要宣告變數, 那麼這個shell程序就可以使用這個變數, 如果想要是區域性的, 需要前面新增關鍵字local
. 沒有初始化的變數是null型別, 可以看成數字0
shell有強引用和弱引用, 分別是' '
和" "
符號. 強引用會把所有的符號解釋成字元, 而弱引用會把變數替換成相應的值, 比如:
#!/bin/sh
a=1echo
'$a'
echo
"$a"
執行指令碼顯示:
$a
1
let
的例子:
#!/bin/bash
a=1a=a+1
echo
$ab=1
let"b=b+1"
let b=b+1
echo
$b
輸出
a+1
3
可以看出, a變成了字串了, 而b還是執行加法. shell**現數值計算, 最好使用let
.let
支援i++
和i--
io重定向操作, 需要使用>
<
或者是>>
<<
, 前兩個是覆蓋寫, 後兩個是追加.
linux直接執行shell命令或者檔案的時候, 是建立子程序執行, 子程序執行完畢後, 再返回到主程序. 如果需要在當前程序執行shell指令碼, 需要執行source ***.sh
, 這個命令一般是執行配置檔案時候使用的.
還有一些特殊的作用的命令符號引數:
linux shell 之 sh與bash區別
在shell指令碼的開頭往往有一句話來定義使用哪種sh直譯器來解釋指令碼。1 bin sh 2 bin bash 二者區別如下 1.新建test.sh指令碼內容如下 bin sh source pcy.sh pcy.sh並不存在 echo hello 執行.test.sh,螢幕輸出為 test.sh...
Linux Shell 程式設計學習筆記 1
linux shell命令主要有三種 內部命令,shell函式,和外部命令 內部命令 內部命令是shell直譯器本身包含的命令,在檔案系統中沒有相應的可執行檔案。例如,cd命令和echo命令就是兩個常用的shell內部命令。命令列在執行內部命令時,不需要建立新的程序,當然也就不需要銷毀程序。互動式的...
學習筆記 linux shell程式設計1
用chmod形成乙個可執行檔案 chmod 771 myfile 乙個程式的使用者有三類 owner,group,others,每個數字對應一類使用者,將每乙個許可權級別數字相加求和 讀 read 4 寫 write 2 可執行 executable 1 bash shell學習 1.程式的第乙個命...