linux中shell變數$#,$@,$0,$1,$2的含義解釋/Shell中的${}、##和%%使用範例/export__linux

來源:互聯網
上載者:User
linux中shell變數$#,$@,$0,$1,$2的含義解釋: 
變數說明: 
$$ 
Shell本身的PID(ProcessID) 
$! 
Shell最後啟動並執行後台Process的PID 
$? 
最後啟動並執行命令的結束代碼(傳回值) 
$- 
使用Set命令設定的Flag一覽 
$* 
所有參數列表。如"$*"用「"」括起來的情況、以"$1 $2 … $n"的形式輸出所有參數。 
$@ 
所有參數列表。如"$@"用「"」括起來的情況、以"$1" "$2" … "$n" 的形式輸出所有參數。 
$# 
添加到Shell的參數個數 
$0 
Shell本身的檔案名稱 
$1~$n 

添加到Shell的各參數值。$1是第1參數、$2是第2參數…。 

-----------------------------------------------------------------

介紹下Shell中的${}、##和%%使用範例,本文給出了不同情況下得到的結果。
假設定義了一個變數為:
代碼如下:
file=/dir1/dir2/dir3/my.file.txt
可以用${ }分別替換得到不同的值:
${file#*/}:刪掉第一個 / 及其左邊的字串:dir1/dir2/dir3/my.file.txt
${file##*/}:刪掉最後一個 / 及其左邊的字串:my.file.txt
${file#*.}:刪掉第一個 . 及其左邊的字串:file.txt
${file##*.}:刪掉最後一個 . 及其左邊的字串:txt
${file%/*}:刪掉最後一個 / 及其右邊的字串:/dir1/dir2/dir3
${file%%/*}:刪掉第一個 / 及其右邊的字串:(空值)
${file%.*}:刪掉最後一個 . 及其右邊的字串:/dir1/dir2/dir3/my.file
${file%%.*}:刪掉第一個 . 及其右邊的字串:/dir1/dir2/dir3/my
記憶的方法為:
# 是 去掉左邊(鍵盤上#在 $ 的左邊)
%是去掉右邊(鍵盤上% 在$ 的右邊)
單一符號是最小匹配;兩個符號是最大匹配
${file:0:5}:提取最左邊的 5 個位元組:/dir1
${file:5:5}:提取第 5 個位元組右邊的連續5個位元組:/dir2
也可以對變數值裡的字串作替換:
${file/dir/path}:將第一個dir 替換為path:/path1/dir2/dir3/my.file.txt
${file//dir/path}:將全部dir 替換為 path:/path1/path2/path3/my.file.txt

//------------------------------------------------------------------------------------------------------

1、執行指令碼時是在一個子shell環境啟動並執行,指令碼執行完後該子shell自動結束;

2、一個shell中的系統內容變數怎樣才會被複製到子shell中(用export定義的變數);

3、一個shell中的系統內容變數只對該shell或者它的子shell有效,該shell結束時變數消失(並不能返回到父shell中)。

4、不用export定義的變數只對該shell有效,對子shell是無效的。

---------------------------------------

-d :判斷制定的是否為目錄
-z:判斷制定的變數是否存在值
-f:判斷制定的是否為檔案
-L:判斷制定的是否為符號連結
-r:判斷制定的是否可讀
-s:判斷存在的對象長度是否為0
-w:判斷制定的是否可寫
-x:判斷存在的對象是否可以執行
。:測試條件的否定符號
這些檔案操作很多時候給指令碼編程帶來方便,尤其是用在if條件陳述式中

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.