Shell 傳遞參數

Shell 傳遞參數

  咱們能夠在執行 Shell 腳本時,向腳本傳遞參數,腳本內獲取參數的格式爲:$nn 表明一個數字,1 爲執行腳本的第一個參數,2 爲執行腳本的第二個參數,以此類推…bash

#!/bin/bash
echo "執行的文件是:$0"
echo "第一個參數: $1"
echo "第二個參數:$2"
echo "第三個參數:$3"
echo "傳遞的參數個數: $#"
echo "以一個單字符串顯示全部向腳本傳遞的參數: $*"
echo "腳本運行的當前進程ID號: $$"
echo "後臺運行的最後一個進程的ID號: $!"
echo "是使用時加引號,並在引號中返回每一個參數:$@"
echo "顯示Shell使用的當前選項,與set命令功能相同。 $-"
echo "顯示最後命令的退出狀態。0表示沒有錯誤,其餘任何值代表有錯誤: $?"

#將param.sh腳本變爲可執行
chmod +x ./param.sh
#執行腳本
./param.sh A B C D E F G 豬八戒 孫悟空 1 2 3 4 5 6 http://www.nihao.com

#輸出內容

  執行的文件是:./param.sh
  第一個參數: A
  第二個參數:B
  第三個參數:C
  傳遞的參數個數: 16
  以一個單字符串顯示全部向腳本傳遞的參數: A B C D E F G 豬八戒 孫悟空 1 2 3 4 5 6 http://www.nihao.com
  腳本運行的當前進程ID號: 14621
  後臺運行的最後一個進程的ID號:
  是使用時加引號,並在引號中返回每一個參數:A B C D E F G 豬八戒 孫悟空 1 2 3 4 5 6 http://www.nihao.com
  顯示Shell使用的當前選項,與set命令功能相同。 hB
  顯示最後命令的退出狀態。0表示沒有錯誤,其餘任何值代表有錯誤: 0spa

 

 

$* 與 $@ 區別:code

  • 相同點:都是引用全部參數。
  • 不一樣點:只有在雙引號中體現出來。假設在腳本運行時寫了三個參數 一、二、3,,則 " * " 等價於 "1 2 3"(傳遞了一個參數),而 "@" 等價於 "1" "2" "3"(傳遞了三個參數)
#!/bin/bash
echo "以一個單字符串顯示全部向腳本傳遞的參數: $*"
echo "-- \$* 演示--"
for i in "$*"; do
        echo $i
done
echo "-- \$@ 演示 ---"
echo "是使用時加引號,並在引號中返回每一個參數:$@"
for i in "$@"; do
        echo $i
done

#執行腳本:
chmod +x ./param.sh
./param.sh a b c d 
#腳本輸出
以一個單字符串顯示全部向腳本傳遞的參數: a b c d
-- $* 演示--
a b c d
-- $@ 演示 ---
是使用時加引號,並在引號中返回每一個參數:a b c d
a
b
c
d
相關文章
相關標籤/搜索