shell指令碼 預定義變數

2021-10-03 05:29:12 字數 1413 閱讀 8597

有些變數是一開始執行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 規範的版本。...