3個例項介紹shell指令碼中幾個特殊引數的用法
導讀 | 在本文中討論的一些 特殊引數是:$*,$@,$#,$$,$! |
示例1:使用 $*和$@ 來擴充套件位置引數
本例項 中使用$*和$@引數:
[root@localhost scripts]# vim expan.sh #!/bin/bash export IFS='-' cnt=1 # Printing the data available in $* echo "Values of \"\$*\":" for arg in "$*" do echo "Arg #$cnt= $arg" let "cnt+=1" done cnt=1 # Printing the data available in $@ echo "Values of \"\$@\":" for arg in "$@" do echo "Arg #$cnt= $arg" let "cnt+=1" done
下面是執行結果:
[root@localhost scripts]# ./expan.sh "Hello world" 2 3 4 Values of "$*": Arg #1= Hello world-2-3-4 Values of "$@": Arg #1= Hello world Arg #2= 2 Arg #3= 3 Arg #4= 4
-
export IFS='-'
表示使用" - "表示內部欄位分隔符。 - 當列印引數
$*
的每個值時,它只給出一個值,即是IFS分隔的整個位置引數。 - 而
$@
將每個引數作為單獨的值提供。
示例2:使用$#統計位置引數的數量
$#
是特殊引數,它可以提更
的位置引數的數量:
[root@localhost scripts]# vim count.sh #!/bin/bash if [ $# -lt 2 ] then echo "Usage: $0 arg1 arg2" exit fi echo -e "\$1=$1" echo -e "\$2=$2" let add=$1+$2 let sub=$1-$2 let mul=$1*$2 let div=$1/$2 echo -e "Addition=$add\nSubtraction=$sub\nMultiplication=$mul\nDivision=$div\n"
下面是執行結果:
[root@localhost scripts]# ./count.sh Usage: ./count.sh arg1 arg2 [root@localhost scripts]# ./count.sh 2314 15241 $1=2314 $2=15241 Addition=17555 Subtraction=-12927 Multiplication=35267674 Division=0
指令碼中
if [ $# -lt 2 ]
表示如果位置引數的數量小於2,則會提示"Usage: ./count.sh arg1 arg2"。
示例3:與過程相關的引數 $$和$!
引數
$$
將給出shell指令碼的程式ID。
$!
提供最近執行的後臺程式的ID,下面例項是列印當前指令碼的程式ID和最後一次執行後臺程式的ID:
[root@localhost scripts]# vim proc.sh #!/bin/bash echo -e "Process ID=$$" sleep 1000 & echo -e "Background Process ID=$!"
下面是執行的結果:
[root@localhost scripts]# ./proc.sh Process ID=14625 Background Process ID=14626 [root@localhost scripts]# ps PID TTY TIME CMD 3665 pts/0 00:00:00 bash 14626 pts/0 00:00:00 sleep 14627 pts/0 00:00:00 ps
總結
在本文中討論的一些shell特殊引數是:$*,$@,$#,$$,$!
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69955379/viewspace-2761272/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Shell 中 $ 關於指令碼引數的幾種用法指令碼
- bash shell指令碼接受多個引數指令碼
- 7 個日常實用的 Shell 拿來就用指令碼例項!指令碼
- 幾例實用的Shell指令碼指令碼
- shell指令碼中main函式中$#獲取不到指令碼傳入引數個數淺析指令碼AI函式
- Bash Shell指令碼中的陣列使用例項指令碼陣列
- Shell指令碼介紹與使用指令碼
- linux shell特殊引數Linux
- Linux shell 指令碼基礎介紹Linux指令碼
- 獲取倒數第幾個元素程式碼例項
- shell (3)指令碼引數傳遞與數學運算指令碼
- shell中set指令的用法
- vue3官網介紹,安裝,建立一個vue例項Vue
- shell study-3day--shell變數及例項3D變數
- 介紹幾個Java大型中介軟體系統中須調整的Linux核心引數JavaLinux
- shell的引數和指令碼流程改進指令碼
- impdp和expdp用法及引數介紹
- Untiy 中的幾個資料夾的介紹
- Tee命令的幾個使用例項
- 理解 shell 指令碼中的常見用法: 2>&1指令碼
- Linux Bash Shell 指令碼入門(3)——Linux常用命令介紹Linux指令碼
- 介紹幾個Python 中寫註釋的方法Python
- Debug和幾個小例項
- 伺服器中的幾個重要引數伺服器
- 介紹幾個好用的工具類
- 30個關於Shell指令碼的經典案例(中)指令碼
- 9個實用shell指令碼指令碼
- go 呼叫 shell 指令碼 如何傳遞引數Go指令碼
- RestCloud ETL解決shell指令碼引數化RESTCloud指令碼
- 簡單介紹Python drop方法刪除列之inplace引數例項Python
- 分享兩個實用的shell指令碼指令碼
- 介紹幾個程式碼實際開發中很實用的工具
- 介紹Nginx、正向代理和實現反向代理的兩個例項Nginx
- Python qutip用法(舉例介紹)Python
- LINUX Shell指令碼程式設計例項詳解(一)上Linux指令碼程式設計
- linux常用的幾個系統介紹Linux
- Linux shell:執行shell指令碼的幾種方式Linux指令碼
- Shell指令碼應用兩個例子指令碼