$0
當前指令碼的檔名。
$n(n≥1)
傳遞給指令碼或函式的引數。n 是乙個數字,表示第幾個引數。例如,第乙個引數是 $1,第二個引數是 $2。n不能為變數,即使變數值為0到n
$#傳遞給指令碼或函式的引數個數。
$*傳遞給指令碼或函式的所有引數。
$@傳遞給指令碼或函式的所有引數。當被雙引號" "
包含時,$@ 與 $* 稍有不同
$?上個命令的退出狀態,或函式的返回值
$$當前 shell 程序 id。對於 shell 指令碼,就是這些指令碼所在的程序 id。
一、$?:
命令返回值:$?一般情況下,大部分命令執行成功會返回 0,失敗返回 1
函式返回值:
#!/bin/bash
#得到兩個數相加的和
function add(){
return `expr $1 + $2`
add 23 50 #呼叫函式
echo $? #獲取函式返回值
執行結果:
73二、$* 和 $@的區別:
當 $* 和 $@ 不被雙引號" "
包圍時,它們之間沒有任何區別,都是將接收到的每個引數看做乙份資料,彼此之間以空格來分隔。
但是當它們被雙引號" "
包含時,就會有區別了:
例:[root@localhost b21430]# cat xx.sh
#!/bin/bash
i=0j=0
echo "print each param from \"\$*\""
for var in "$*"
do((i++))
echo "$var, $i"
done
echo "print each param from \"\$@\""
for var in "$@"
do((j++))
echo "$var, $j"
done
[root@localhost b21430]# bash xx.sh a b c d
print each param from "$*"
a b c d, 1
print each param from "$@"
a, 1
b, 2
c, 3
d, 4
shell變數相關記錄
形式說明 變數本來的值 截斷變數m n 如果變數 var 為空或已被刪除 unset 那麼返回 word,但不改變 var 的值。如果變數 var 為空或已被刪除 unset 那麼返回 word,並將 var 的值設定為 word。如果變數 var 為空或已被刪除 unset 那麼將訊息 messa...
shell變數相關知識
一 幾個常用命令 1.set 輸出所有變數,包含全域性變數和區域性變數 2.env 只顯示全域性變數 3.declare 輸出所有的變數,函式,整數和已經匯出的變數 4.unset 消除本地變數和環境變數 5.source etc profile 載入環境變數,使環境變數生效 二 普通變數定義賦值有...
shell變數的相關操作 1
擴充套件變數 如果變數parameter沒被宣告,那麼就使用預設值.如果變數parameter沒被設定,那麼就使用預設值.echo 前面沒有申明和設定 username0變數,所以這裡顯示為空 echo 變數沒有被申明,就使用預設值,whoami命令的結果是b b是當前使用者名稱 b echo 變數...