有些變數是一開始執行script指令碼時就會設定,且不能被修改,我們叫他們為預定義變數。這些變數當一執行程式時就有了,以下是一些預定義變數:
==$* :表示所有位置引數的內容,即以乙個字串顯示所有向指令碼傳遞的引數;$* 以"$1 $2 … $n"的形式輸出所有引數
$#:表示命令行中位置引數的個數,傳遞到指令碼的引數個數
$@:與$*相同,$@以"$1" 「2"…
"2" … "
2"…"
n」 的形式輸出所有引數
$$:當前程序的程序號pid
$! :後台執行的最後乙個程序的程序號pid
舉乙個例子,可以幫助理解
指令碼內容:
#!
/bin/bash
echo "$1 $2 $3 $4 $5"
echo "指令碼名稱:$0"
echo "引數列表1:$*"
echo "引數列表2:$@"
echo "引數個數:$#"
echo "當前程序號:$$"
echo "命令執行結果:$?"
執行結果:
[root@linus ~
]# sh yu.sh 123
4512
345指令碼名稱:yu.sh
引數列表1:1
2345
引數列表2:1
2345
引數個數:
5當前程序號:
1951
命令執行結果:
0
$*與$@的區別,只有在雙引號中才能體現出來,$*是輸出乙個整體,而$@是分別輸出引數。
指令碼內容:
#!
/bin/bash
echo "---------------\$*--------------"
for i in
"$*"
do echo "$i"
done
echo "---------------\$@--------------"
for i in
"$@"
do echo "$i"
done
echo"–\$*–"中的\是轉義符,將其變成了普通字元,而不是預定義變數。
執行過程:
[root@linus ~
]# sh 11.sh 123
----
----
----
---$*
----
----
------1
23----
----
----
---$@--
----
----
----12
3
Shell預定義變數
預定義變數即shell已經定義的變數,使用者可根據shell的定義直接使用這些變數,無需自己定義。所有預定義的變數都由 符和其他符號組成,常用的預定義變數如下所示。1 表示命令行引數的個數。2 包含所有的命令列引數,即 1 2 3.3 前乙個命令的退出狀態,正常退出返回0,反之為非0值。4 包含所有...
預定義變數
不包含副檔名的目標檔名稱。所有的依賴檔案,以空格分開,並以出現的先後為序,可能包含重複的依賴檔案。第乙個依賴檔案的名稱。所有的依賴檔案,以空格分開,這些依賴檔案的修改日期比目標的建立日期晚。目標的完整名稱。所有的依賴檔案,以空格分開,不包含重複的依賴檔案。如果目標是歸檔成員,則該 變數表示目標的歸檔...
PHP SEVER預定義變數
server php self 當前正在執行指令碼的檔名,與 document root相關。server argv 傳遞給該指令碼的引數。server argc 包含傳遞給程式的命令列引數的個數 如果執行在命令列模式 server gateway inte ce 伺服器使用的 cgi 規範的版本。...