1. 程式人生 > >Linux Shell基礎 位置參數變量、預定義變量

Linux Shell基礎 位置參數變量、預定義變量

install -m ear 輸出 span color pid 例如 clas

位置參數變量

在 Linux 的命令行中,當一條命令或腳本執行時,後面可以跟多個參數,我們使用位置參數變量來表示這些參數。其中,$0 代表命令行本身,$1 代表第 1 個參數,$2 代表第 2 個參數,依次類推。當參數個數超過 10 個時,就要用大括號把這個數字括起來,例如,${10} 代表第 10 個參數,${14} 則代表第 14 個參數。舉個例子:

[root@localhost ~]# ls anaconda-ks.cfg install.log install.log.syslog

$0 的值就是 ls 命令本身,$1 的值就是 anaconda-ks.cfg 這個文件,$2 是 install.log 文件,$3 是 install.log.syslog 文件。在 Shell 中可以識別的位置參數變量如表 1 所示。

位置參數變量作 用
$n n 為數字,$0 代表命令本身,$1?$9 代表第 1?9 個參數,10 以上的參數需要用大括號包含, 如${10}
$* 這個變量代表命令行中所有的參數,把所有的參數看成一個整體
$@ 這個變量也代表命令行中所有的參數,不過 $@ 把每個參數區別對待
$# 這個變量代表命令行中所有參數的個數

預定義變量

預定義變量是在 Shell 一開始時就定義的變量,這一點和默認環境變量有些類似。不同的是,預定義變量不能重新定義,用戶只能根據 Shell 的定義來使用這些變量。

預定義變量

作 用

$?

最後一次執行的命令的返回狀態。如果這個變量的值為 0,則證明上一條命令正確執行;如果這 個變量的值為非 0 (具體是哪個數由命令自己來決定),則證明上一條命令執行錯誤

$$

當前進程的進程號(PID)

$!

後臺運行的最後一個進程的進程號(PID)

"$?"示例

[root@localhost sh]# ls
hello.sh  #ls命令正確執行
[root@localhost sh]# echo $?
0

變量"$?"返回一個0的值,說明上一條命令已經正確執行,如果執行錯誤"$?"會返回非0。

"$$"示例

[root@localhost sh]# vi hello.sh
#!/bin/bash
echo "The current process is $$"

輸出當前進程的PID

"$!"示例

find /root -name hello.sh &

使用find命令在/root目錄下査找hello.sh文件,符號"&"的意思是把命令放入後臺執行。

Linux Shell基礎 位置參數變量、預定義變量