文章出處

/path/to/scriptname  opt1  opt2  opt3  opt4 
       $0             $1    $2    $3    $4

這樣夠清楚了吧?運行的腳本檔名為 $0 這個變量,第一個接的參數就是 $1 啊~ 所以,只要我們在 script 里面善用 $1 的話,就可以很簡單的立即下達某些命令功能了!除了這些數字的變量之外, 我們還有一些較為特殊的變量可以在 script 內使用來呼叫這些參數喔!

  • $# :代表后接的參數『個數』,以上表為例這里顯示為『 4 』;
  • $@ :代表『 "$1" "$2" "$3" "$4" 』之意,每個變量是獨立的(用雙引號括起來);
  • $* :代表『 "$1c$2c$3c$4" 』,其中 c 為分隔字節,默認為空白鍵, 所以本例中代表『 "$1 $2 $3 $4" 』之意。

那個 $@ 與 $* 基本上還是有所不同啦!不過,一般使用情況下可以直接記憶 $@ 即可! 好了,來做個例子吧~假設我要運行一個可以攜帶參數的 script ,運行該腳本后螢幕會顯示如下的數據:

  • 程序的檔名為何?
  • 共有幾個參數?
  • 若參數的個數小於 2 則告知使用者參數數量太少
  • 全部的參數內容為何?
  • 第一個參數為何?
  • 第二個參數為何

腳本名稱 sh04.sh 

#!/bin/bash
# Program:
#       Program shows the sripts name, parameters...
# History:
# 2015/9/6      zengdp  First release
PATH=/bin:/sbin/:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:~/bin
export PATH

echo "The script name is          ==> $0"
echo "Total parameter number is   ==> $#"
[ "$#" -lt 2 ] && acho "The number of parameter is less than 2. Stop here." && exit 0
echo "You whole parameter is      ==>'$@'"
echo "The 1st parameter           ==> $1"
echo "The 2nd parameter           ==> $2"

輸入命令 sh sh04.sh the one haha quot 

腳本運行后輸出:

The script name is          ==> sh06.sh
Total parameter number is   ==> 4
You whole parameter is      ==>'the one haha quot'
The 1st parameter           ==> the
The 2nd parameter           ==> one

 


文章列表




Avast logo

Avast 防毒軟體已檢查此封電子郵件的病毒。
www.avast.com


arrow
arrow
    全站熱搜
    創作者介紹
    創作者 大師兄 的頭像
    大師兄

    IT工程師數位筆記本

    大師兄 發表在 痞客邦 留言(0) 人氣()