2011年12月9日 星期五

Linux中變量$#,$@,$0,$1,$2,$*,$$,$?的含義


Linux中變量$#,$@,$0,$1,$2,$*,$,$?的含義
我們先寫一個簡單的腳本,執行以後再解釋各個變量的意義

# touch variable
# vi variable

腳本內容如下:

#!/bin/sh
echo "number:$#"
echo "scname:$0"
echo "first :$1"
echo "second:$2"
echo "argume:$@"

echo "show parm list:$*"
echo "show process id:$"

echo "show precomm stat: $?"

保存退出

賦予腳本執行權限

# chmod +x variable

執行腳本

# ./variable aa bb
number:2
scname:./variable
first:aa
second:bb
argume:aa bb
show parm list:aa bb
show process id:24544
show precomm stat:0

通過顯示結果可以看到:

$# 是傳給腳本的參數個數

$0 是腳本本身的名字
$1 是傳遞給該shell腳本的第一個參數
$2 是傳遞給該shell腳本的第二個參數
$@ 是傳給腳本的所有參數的列表
$* 是以一個單字符串顯示所有向腳本傳遞的參數,與位置變量不同,參數可超過9個
$ 是腳本運行的當前進程ID號
$? 是顯示最後命令的退出狀態,0表示沒有錯誤,其他表示有錯誤

沒有留言:

如何查看主機跟NAS連線的指令?

windows的VM或主機可以下 net use 或是 Get-SmbConnection 看有沒有關於連線到NAS storage的資訊. ================================================ 對於linux VM或主機可以下 net...