日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

shell基础二

發布時間:2023/12/4 编程问答 25 豆豆
生活随笔 收集整理的這篇文章主要介紹了 shell基础二 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
前面已經講到,變量名只能包含數字、字母和下劃線,因為某些包含其他字符的變量有特殊含義,這樣的變量被稱為特殊變量。

例如,$ 表示當前Shell進程的ID,即pid,看下面的代碼:
  • $echo $$
  • 運行結果 29949
    特殊變量列表 變量 含義
    $0當前腳本的文件名
    $n傳遞給腳本或函數的參數。n 是一個數字,表示第幾個參數。例如,第一個參數是$1,第二個參數是$2。
    $#傳遞給腳本或函數的參數個數。
    $*傳遞給腳本或函數的所有參數。
    $@傳遞給腳本或函數的所有參數。被雙引號(" ")包含時,與 $* 稍有不同,下面將會講到。
    $?上個命令的退出狀態,或函數的返回值。
    $$當前Shell進程ID。對于 Shell 腳本,就是這些腳本所在的進程ID。

    命令行參數

    運行腳本時傳遞給腳本的參數稱為命令行參數。命令行參數用 $n 表示,例如,$1 表示第一個參數,$2 表示第二個參數,依次類推。

    請看下面的腳本:
  • #!/bin/bash
  • echo "File Name: $0"
  • echo "First Parameter : $1"
  • echo "First Parameter : $2"
  • echo "Quoted Values: $@"
  • echo "Quoted Values: $*"
  • echo "Total Number of Parameters : $#"
  • 運行結果: $./test.sh Zara Ali File Name : ./test.sh First Parameter : Zara Second Parameter : Ali Quoted Values: Zara Ali Quoted Values: Zara Ali Total Number of Parameters : 2

    $* 和 $@ 的區別

    $* 和 $@ 都表示傳遞給函數或腳本的所有參數,不被雙引號(" ")包含時,都以"$1" "$2" … "$n" 的形式輸出所有參數。

    但是當它們被雙引號(" ")包含時,"$*" 會將所有的參數作為一個整體,以"$1 $2 … $n"的形式輸出所有參數;"$@" 會將各個參數分開,以"$1" "$2" … "$n" 的形式輸出所有參數。

    下面的例子可以清楚的看到 $* 和 $@ 的區別:
  • #!/bin/bash
  • echo "\$*=" $*
  • echo "\"\$*\"=" "$*"
  • echo "\$@=" $@
  • echo "\"\$@\"=" "$@"
  • echo "print each param from \$*"
  • for var in $*
  • do
  • echo "$var"
  • done
  • echo "print each param from \$@"
  • for var in $@
  • do
  • echo "$var"
  • done
  • echo "print each param from \"\$*\""
  • for var in "$*"
  • do
  • echo "$var"
  • done
  • echo "print each param from \"\$@\""
  • for var in "$@"
  • do
  • echo "$var"
  • done
  • 執行?./test.sh "a" "b" "c" "d",看到下面的結果: $*= a b c d "$*"= a b c d $@= a b c d "$@"= a b c d print each param from $* a b c d print each param from $@ a b c d print each param from "$*" a b c d print each param from "$@" a b c d

    退出狀態

    $? 可以獲取上一個命令的退出狀態。所謂退出狀態,就是上一個命令執行后的返回結果。

    退出狀態是一個數字,一般情況下,大部分命令執行成功會返回 0,失敗返回 1。

    不過,也有一些命令返回其他值,表示不同類型的錯誤。

    下面例子中,命令成功執行: $./test.sh Zara Ali File Name : ./test.sh First Parameter : Zara Second Parameter : Ali Quoted Values: Zara Ali Quoted Values: Zara Ali Total Number of Parameters : 2 $echo $? 0 $
    $? 也可以表示函數的返回值,后續將會講解。 創作挑戰賽新人創作獎勵來咯,堅持創作打卡瓜分現金大獎

    總結

    以上是生活随笔為你收集整理的shell基础二的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。