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 中 $ 關於指令碼引數的幾種用法指令碼
- shell指令碼例項指令碼
- shell指令碼中main函式中$#獲取不到指令碼傳入引數個數淺析指令碼AI函式
- $.getJSON()用法程式碼例項介紹JSON
- 7 個日常實用的 Shell 拿來就用指令碼例項!指令碼
- shell指令碼例項(2)指令碼
- 幾例實用的Shell指令碼指令碼
- Bash Shell指令碼中的陣列使用例項指令碼陣列
- mysql便於管理的幾個shell指令碼MySql指令碼
- 幾個shell自動化指令碼(轉)指令碼
- Shell指令碼介紹與使用指令碼
- 陣列-在Shell指令碼中的基本使用介紹陣列指令碼
- unix下幾個有用的小shell指令碼(轉)指令碼
- MySQL使用XtraBackup的shell指令碼介紹MySql指令碼
- 獲取倒數第幾個元素程式碼例項
- EBS密碼安全的幾個引數密碼
- shell指令碼的命令列引數 - todo指令碼命令列
- javascript bind()第一個引數以後引數介紹JavaScript
- python中星號變數的幾種特殊用法Python變數
- Untiy 中的幾個資料夾的介紹
- vue3官網介紹,安裝,建立一個vue例項Vue
- Linux shell 指令碼基礎介紹Linux指令碼
- 介紹幾個Java大型中介軟體系統中須調整的Linux核心引數JavaLinux
- $.ajax()用法例項程式碼介紹
- 伺服器中的幾個重要引數伺服器
- shell的引數和指令碼流程改進指令碼
- shell study-3day--shell變數及例項3D變數
- Shell常用的特殊位置引數變數說明變數
- C#中ref、out及特殊說明引數的用法C#
- Tee命令的幾個使用例項
- Shell指令碼中執行sql語句操作MySQL資料庫的幾個方法指令碼MySql資料庫
- 理解 shell 指令碼中的常見用法: 2>&1指令碼
- 介紹幾個好用的工具類
- 介紹一個自己寫的crs_stat指令碼指令碼
- 聊聊Oracle Optimizer相關的幾個引數(中)Oracle
- 關於歸檔日誌的幾個引數選項
- 介紹幾個Python 中寫註釋的方法Python
- 常用的幾個典型指令碼指令碼