位置參數(Positional
--------------------------------------------------------------------------------
所謂的位置參數便是0,1,2,3,4,5,6,7,8,9...。使用時,用$0,$1,$2...。
位置參數是當 script被載入時,後面所附加的參數。$0是本身,$1則爲第一個參數,$2爲第二個,依此類推。而當Positional
例如以下這個script:
#!/bin/sh
#
echo
echo
執行時:
[foxman@foxman
./position
abc
當位置參數超過兩位數時,有特別的方法來展開,稱爲Expansion。
--------------------------------------------------------------------------------
特殊參數(Speical
這些符號,非常不人性,對新手來說很困擾。但上手後,會覺得方便無比,有些如果您看不懂的話,就--算了,不用浪費太多時間在上面。
--------------------------------------------------------------------------------
*
將Positional
例:
#!/bin/sh
#
echo
執行:
[foxman@foxman
a
--------------------------------------------------------------------------------
@
與*星號類同。不同之處在於不參照IFS。
例:
#!/bin/sh
#
echo
執行:
[foxman@foxman
a
--------------------------------------------------------------------------------
#
展開Positional
例:
#!/bin/sh
#
echo
執行
[foxman@foxman
7
--------------------------------------------------------------------------------
?
最近執行的foreground
--------------------------------------------------------------------------------
-
最近執行的foreground
--------------------------------------------------------------------------------
$ $
本身的Process
[foxman@foxman
1635
[foxman@foxman
1635
--------------------------------------------------------------------------------
!
最近執行背景命令的Process
--------------------------------------------------------------------------------
0
在Positional
[foxman@foxman
/bin/bash
--------------------------------------------------------------------------------
_
顯示出最後一個執行的命令。
[foxman@foxman
bash
1.$0, $1, $2,等等:位置參數,從命令行傳遞給腳本,或者是傳遞給函數.或者賦職給一個變量.
2.$#:命令行或者是位置參數的個數.
3.$*:所有的位置參數,被作爲一個單詞.注意:"$*"必須被""引用.
4.$@:與$*同義,但是每個參數都是一個獨立的""引用字串,這就意味着參數被完整地傳遞,並沒有被解釋和擴展.這也意味着,每個參數列表中的每個參數都被當成一個獨立的單詞.注意:"$@"必須被引用.
5.$-:傳遞給腳本的falg(使用set 命令).注意:這起初是ksh 的特徵,後來被引進到Bash 中,但不幸的是,在Bash 中它看上去也不能可靠的工作.使用它的一個可能的方法就是讓這個腳本進行自我測試(查看是否是交互的).
6.$!:在後臺運行的最後的工作的PID(進程ID).
7.$_:保存之前執行的命令的最後一個參數.
8.$?:命令,函數或者腳本本身的退出狀態
9.$$:腳本自身的進程ID.這個變量經常用來構造一個"unique"的臨時文件名.