您好,登錄后才能下訂單哦!
位置變量
$0 獲取當前執行的shell腳本的文件名,如果執行腳本帶路徑那么就包括腳本路徑
[root@XCN shell]# sh n.sh n.sh [root@XCN ~]# sh /shell/n.sh /shell/n.sh [root@XCN shell]# sh `pwd`/n.sh /shell/n.sh
$n 獲取當前執行的shell腳本的第n個參數值,n=1..9,當n為0時表示腳本的文件名,如果n大于0,大括號括起來${10}
腳本內容: #!/bin/bash echo $1 [root@XCN shell]# sh p.sh xcn #1個參數 xcn [root@XCN shell]# sh p.sh xcn cainiao #2個參數輸出的是第一個參數 xcn
$* 獲取當前shell的所有參數,將所有的命令行參數視為單個字符串,相當于"$1$2$3".....注意與$#的區域
$# 獲取當前執行的shell腳本后面接的參數的總個數
[root@XCN shell]# cat p.sh echo $1 echo $# [root@XCN shell]# sh p.sh {a..z} a 26 企業應用:(控制用戶參數輸入的個數)當輸入參數不等于2成立輸出“muse two”,側不成立會輸出"buchengli" [root@XCN shell]# cat 1p.sh #!/bin/bash [ $# -ne 2 ] && { echo "muse two" exit 1 #值1是退出后$? 的值 } echo "buchengli" [root@XCN shell]# sh 1p.sh bai muse two [root@XCN shell]# sh 1p.sh bai shu buchengli [root@XCN shell]#
$@ 這個程序的所有參數"$1" "$2" "$3" "...",這是將參數傳遞給其他程序的最佳方式,因為他會保留內嵌在每個參數里的任何空白。
$*和$@的區別例子
$* 將所有的命令行所有參數視為單個字符串,等同于"$1$2$3","$*"
$@ 將命令行每個參數視為單獨的字符串,等同于"$1" "$2" "$3".這是將參數傳遞給其他程序的最近方式,因為他會保留所有內嵌在每個參數里的任何空白。
注意:上述區別僅在于加雙引號的時候,即"$*"與"$@"
shift 移動位置變量
2.進程狀態變量
$$ 獲取當前shell的進程號
$! 執行上一個指令的PID
$? 獲取執行上一個指令的返回值(0為成功,非零為失敗)#這個變量很常用
$_ 在此之前執行的命令或腳本的最后一個參數
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。