新聞中心
特殊變量
之前的教程就在命名變量時(shí),使用某些非字符數(shù)值作為字符變量名提出警告。這是因?yàn)檫@些字符用于作為特殊的 UNIX 變量的名稱。這些變量是預(yù)留給特定功能的。

創(chuàng)新互聯(lián)專注于企業(yè)網(wǎng)絡(luò)營(yíng)銷(xiāo)推廣、網(wǎng)站重做改版、埇橋區(qū)網(wǎng)站定制設(shè)計(jì)、自適應(yīng)品牌網(wǎng)站建設(shè)、H5開(kāi)發(fā)、商城建設(shè)、集團(tuán)公司官網(wǎng)建設(shè)、成都外貿(mào)網(wǎng)站建設(shè)公司、高端網(wǎng)站制作、響應(yīng)式網(wǎng)頁(yè)設(shè)計(jì)等建站業(yè)務(wù),價(jià)格優(yōu)惠性價(jià)比高,為埇橋區(qū)等各大城市提供網(wǎng)站開(kāi)發(fā)制作服務(wù)。
例如,$ 字符代表進(jìn)程的 ID 碼,或當(dāng)前 Shell 的 PID:
$echo $$
以上命令將輸出當(dāng)前 Shell 的 PID:
29949
下面的表列出了一些特殊變量,可以在你的 Shell 腳本中使用它們:
| 變量 | 描述 |
|---|---|
| $0 | 當(dāng)前腳本的文件名。 |
| $n | 這些變量對(duì)應(yīng)于調(diào)用一個(gè)腳本時(shí)的參數(shù)。n 是一個(gè)十進(jìn)制正整數(shù),對(duì)應(yīng)于特定參數(shù)的位置(第一個(gè)參數(shù)是 $1,第二個(gè)參數(shù)是 $2 等等)。 |
| $# | 提供給腳本的參數(shù)數(shù)量。 |
| $* | 所有的參數(shù)都表示兩個(gè)引用。如果一個(gè)腳本接收了兩個(gè)參數(shù),即 $* 相當(dāng)于 $1 $2。 |
| $@ | 所有的參數(shù)都是兩個(gè)單獨(dú)地引用。如果一個(gè)腳本接收了兩個(gè)參數(shù),即 $@ 相當(dāng)于 $1 $2。 |
| $? | 執(zhí)行最后一個(gè)命令的退出態(tài)。 |
| $$ | 當(dāng)前 shell 的進(jìn)程號(hào)。對(duì)于 shell 腳本,即他們正在執(zhí)行的進(jìn)程的 ID。 |
| $! | 最后一個(gè)后臺(tái)命令的進(jìn)程號(hào)。 |
命令行參數(shù)
命令行參數(shù) $1,$2,$3,……$9 是位置參數(shù),$0 指向?qū)嶋H的命令,程序,shell 腳本或函數(shù)。$1,$2,$3,……$9 作為命令的參數(shù)。
以下腳本使用與命令行相關(guān)的各種特殊變量:
#!/bin/sh
echo "File Name: $0"
echo "First Parameter : $1"
echo "Second Parameter : $2"
echo "Quoted Values: $@"
echo "Quoted Values: $*"
echo "Total Number of Parameters : $#"
這是一個(gè)運(yùn)行上述腳本的示例:
$./test.sh Zara Ali
File Name : ./test.sh
First Parameter : Zara
Second Parameter : Ali
Quoted Values: Zara Ali
Quoted Values: Zara Ali
Total Number of Parameters : 2
特殊參數(shù) $* 和 $@
存在一些特殊參數(shù),使用它們可以訪問(wèn)所有的命令行參數(shù)。除非他們包含在雙引號(hào) "" 中,否則 $* 和 $@ 運(yùn)行是相同的。
這兩個(gè)參數(shù)都指定所有的命令行參數(shù),但 $* 特殊參數(shù)將整個(gè)列表作為一個(gè)參數(shù),各個(gè)值之間用空格隔開(kāi)。而 $@ 特殊參數(shù)將整個(gè)列表分隔成單獨(dú)的參數(shù)。
我們可以編寫(xiě)如下所示的 Shell 腳本,使用 $* 或 $@ 特殊參數(shù)來(lái)處理數(shù)量未知的命令行參數(shù):
#!/bin/sh
for TOKEN in $*
do
echo $TOKEN
done
作為示例,運(yùn)行上述腳本:
$./test.sh Zara Ali 10 Years Old
Zara
Ali
10
Years
Old
注意:這里 do……done 是一種循環(huán),我們將在后續(xù)教程中介紹它。
退出態(tài)
$? 變量代表前面的命令的退出態(tài)。
退出態(tài)是每個(gè)命令在其完成后返回的數(shù)值。一般來(lái)說(shuō),大多數(shù)命令如果它們成功地執(zhí)行,將 0 作為退出態(tài)返回,如果它們執(zhí)行失敗,則將 1 作為退出態(tài)返回。
一些命令由于一些特定的原因,會(huì)返回額外的退出狀態(tài)。例如,一些命令為了區(qū)分不同類型的錯(cuò)誤,將根據(jù)特定類型的失敗原因返回各種不同的退出態(tài)值。
下面是一個(gè)成功命令的例子:
$./test.sh Zara Ali
File Name : ./test.sh
First Parameter : Zara
Second Parameter : Ali
Quoted Values: Zara Ali
Quoted Values: Zara Ali
Total Number of Parameters : 2
$echo $?
0
$ 網(wǎng)站標(biāo)題:創(chuàng)新互聯(lián)UNIX教程:UNIX特殊變量
地址分享:http://m.5511xx.com/article/ccdghcc.html


咨詢
建站咨詢
