shell裏面 $開頭的含義,以及擴展
阿新 • • 發佈:2018-01-24
toolbar string mon 輸出 最短匹配 轉義 最短 引號 變量 對於shell裏面的set以及eval的用法:
set的作用設置位置參數(同命令行腳本的傳參)
eval的作用是進行第二次描述
root@ubuntu:/home/xpg# set -- hello shanghai liangge root@ubuntu:/home/xpg# eval echo \$$# liangge root@ubuntu:/home/xpg#
shell裏面的關於 "$"的作用:
$0:腳本名稱
如果想獲得腳本的路徑以及腳本的名稱可以使用dirname和basename
root@ubuntu:/home/xpg# dirname /home/xpg/1.sh /home/xpg root@ubuntu:/home/xpg# basename /home/xpg/1.sh 1.sh
$n:輸出具體的參數
$#:總幾個參數
$*:和下面的$@在不帶引號的情況下是一樣的
$@:帶上引號的區別。可以用set設置位置參數看看,這兩個一般不用
$?:對上一個命令執行的判斷,如果正確,為0,否則為非零
企業中使用$?的用法:
判斷腳本命令,腳本是否執行成功
*若在腳本中,使用exit n來返回數字給$?
*若在函數中,使用return來返回數字給$?
$$:獲得腳本的進程號
生產的上的例子就是多次執行一個腳本的時候,第一次沒有執行完,第二次就要先將這個腳本的pid刪除,在使用$$判斷這個腳本的pid
bash shell的內置命令:
echo:
-n:不換行輸出內容
-e:解析轉義字符(下面用到)
\n:換行
\r:回車
\t:tab健
\b:退格
root@ubuntu:/home/xpg# echo me;echo you me you root@ubuntu:/home/xpg# echo -n me;echo you meyou root@ubuntu:/home/xpg# printf "log\tlog\npog\tpog\n" log log pog pog root@ubuntu:/home/xpg# echo -e "log\tlog\npog\tpog" log log pog pog root@ubuntu:/home/xpg# echo -e log\tlog\npog\tpog logtlognpogtpog
exec:執行完命令會退出當前的shell的
root@ubuntu:/home/xpg# exec date Mon Jan 22 07:07:25 PST 2018 xpg@ubuntu:~ 關於shell變量子串知識以及實踐 ${變量名}:值 ${#變量名}:長度 ${變量名:num}:從num開始到最後,num是一個數字 ${變量名:num:num1}:從num到num1之間的字符 ${變量名#word}:從變量開頭刪除最短匹配的word子串 ${變量名##word}:從變量開頭刪除最長匹配的word子串 ${變量名%word}:從右邊開始刪除的 %%:從變量右邊刪除匹配最長匹配的word,word可以是(a*c代表是的a到c,[0-9]) ${parameter/pattern/string}:使用第一個代替第一個匹配的pattern ${parameter//pattern/string}:使用string代替所有的pattern 修改文件名: anaconda-ks.cfg stu_102_1_finished.jpg [root@localhost ~]# rename "_finished" "" *.jpg [root@localhost ~]# ls anaconda-ks.cfg stu_102_1.jpg
shell裏面 $開頭的含義,以及擴展