《LINUX入門:Shell 特殊變量淺識》要點:
本文介紹了LINUX入門:Shell 特殊變量淺識,希望對您有用。如果有疑問,可以聯系我們。
地位變量
$0? 獲取當前執行的shell腳本的文件名,如果執行腳本帶路徑那么就包含腳本路徑
[root@linuxidc shell]# sh n.sh?
n.sh
?
[root@linuxidc ~]# sh /shell/n.sh?
/shell/n.sh
?
[root@linuxidc shell]# sh `pwd`/n.sh
/shell/n.sh
$n? 獲取當前執行的shell腳本的第n個參數值,n=1..9,當n為0時表現腳本的文件名,如果n大于0,大括號括起來${10}
腳本內容:
#!/bin/bash
echo $1
?
[root@linuxidc shell]# sh p.sh linuxidc? ? #1個參數
linuxidc? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?
?
[root@linuxidc shell]# sh p.sh linuxidc cainiao? ? #2個參數輸出的是第一個參數
linuxidc
$*? 獲取當前shell的所有參數,將所有的敕令行參數視為單個字符串,相當于"$1$2$3".....注意與$#的區域
$#? 獲取當前執行的shell劇本后面接的參數的總個數
[root@linuxidc shell]# cat p.sh?
echo $1
echo $#
[root@linuxidc shell]# sh p.sh {a..z}
a
26
?
企業應用:(控制用戶參數輸入的個數)當輸入參數不即是2成立輸出“muse two”,側不成立會輸出"buchengli"
[root@linuxidc shell]# cat 1p.sh?
#!/bin/bash
[ $# -ne 2 ] && {
echo "muse two"
exit 1? ? ? ? ? #值1是退出后$? 的值
}
echo "buchengli"
[root@linuxidc shell]# sh 1p.sh bai
muse two
[root@linuxidc shell]# sh 1p.sh bai shu
buchengli
[root@linuxidc shell]#
$@? 這個程序的所有參數"$1" "$2" "$3" "...",這是將參數傳遞給其他程序的最佳方式,因為他會保存內嵌在每個參數里的任何空白.
$*和$@的區別例子
$*? 將所有的敕令行所有參數視為單個字符串,等同于"$1$2$3","$*"
$@? 將命令行每個參數視為單獨的字符串,等同于"$1" "$2" "$3".這是將參數傳遞給其他程序的最近方式,因為他會保存所有內嵌在每個參數里的任何空白.
注意:上述區別僅在于加雙引號的時刻,即"$*"與"$@"
shift? 移動地位變量
2.進程狀態變量
$$? ? 獲取當前shell的進程號
$!? ? 執行上一個指令的PID
$?? ? 獲取執行上一個指令的返回值(0為勝利,非零為失敗)#這個變量很常用
$_? ? ? 在此之前執行的命令或腳本的最后一個參數
本文永遠更新鏈接地址:
《LINUX入門:Shell 特殊變量淺識》是否對您有啟發,歡迎查看更多與《LINUX入門:Shell 特殊變量淺識》相關教程,學精學透。維易PHP學院為您提供精彩教程。