shell指令碼中的 預設變數

2022-09-23 08:24:10 字數 1358 閱讀 2470

shell指令碼中的$預設變數

有一些內部變數,內部變數是linux所提供的一種特殊型別的變數,這類變數在程式中用來作出判斷。在shell程式內這類變數的值是不能修改的。

表示方法                        描述

$n           $1 表示第乙個引數,$2 表示第二個引數 ...

$#           命令列引數的個數

$0           當前程式的名稱

$?           前乙個命令或函式的返回碼,返回0代表成功

$*            以"引數1 引數2 ... " 形式儲存所有引數

$@          以"引數1" "引數2" ... 形式儲存所有引數

$$           本程式的(程序id號)pid

我們先寫乙個簡單的指令碼,執行以後再解釋各個變數的意義 

# touch variable # vi variable 

指令碼內容如下: 

[plain] 

#!/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 

結果如下:

[plain] 

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表示沒有錯誤,其他表示有錯誤 

shell指令碼中的變數

1 在命令列中和指令碼中,變數定義得格式 name value 左右兩邊不能有空格,否則會當做命令來對待,輸出乙個command not found echo name echo 列印出變數,引用變數使用 name.2 單引號和雙引號 語法 和php中相同 雙引號仍然可以保有變數的內容,但單引號內僅...

shell指令碼中的變數

變數就是記憶體一片區域的位址 命令無法操作一直變化的目標 用一串固定的字元來表示不固定的目標可以解決此問題 export宣告 env顯示所有環境變數 echo path export a 1 在環境關閉後變數失效 字元 數字 轉譯單個字元 弱引用,批量轉譯個數字元 不能轉譯 強引用 表示當前程序的i...

shell指令碼中的變數

後記面試中很重要 在系統中,當我們執行 bin ls時與ls命令結果並不相同,因為ls是已經經過加工過的命令。alias xie vim 臨時設定,開啟了新的shell就會失效 vim bashrc 只對當前使用者生效 alias xie vim source bashrc vim etc bash...