Shell指令碼中的 測試開關 和 特殊參數

來源:互聯網
上載者:User

標籤:style   io   使用   sp   strong   檔案   on   bs   amp   

1. 測試開關

Shell中內建的一些測試指令, 下表列出這些測試指令的含義以及是否可用於 test命令, bash, ksh.

開關

test

bash

ksh

定義

-a FILE   支援 支援 只是檔案存在
-b FILE 支援 支援 支援 檔案存在, 並且是一個類似於 /dev 下的磁碟裝置之類的塊檔案
-c FILE 支援 支援 支援 檔案存在, 並且是一個類似於 /dev 下的TTY裝置之類的字元檔案
-d FILE 支援 支援 支援 檔案存在, 並且是一個標準目錄
-e FILE 支援 支援 支援 只是檔案存在
-f FILE 支援 支援 支援 檔案存在, 並且是一個類似於一般檔案的標準檔案
-g FILE 支援 支援 支援 檔案存在, 並且是一個set-group-ID. 這是指對檔案可執行性的使用者有效組進行改變的檔案許可
-G FILE 支援 支援 支援 檔案存在, 並且它的組所有權是使用者的有效組ID
-h FILE 支援 支援 支援 檔案存在, 並且它是一個符號連結. 和 -L 一樣
-k FILE 支援 支援 支援 檔案存在, 並且它粘著位設定. 這意味著只有檔案的所有者或者目錄的所有者可以刪除檔案
-l STRING 支援     和類似於 /usr/bin/test -l string -gt 5 && echo 的數字值, 比較 STRING 長度
-L FILE 支援 支援 支援 檔案存在, 並且它是一個符號連結. 和 -h 一樣
-n STRING 支援 支援 支援 STRING 的長度非零
-N FILE   支援 支援 檔案存在, 但是自從最近一次讀入之後, 已經被修改
-o OPTION 支援 支援 支援 如果 shell 的 OPTION 被開啟, 返回真, 例如 set -x
-O FILE 支援 支援 支援 檔案存在, 並且它的所有者由有效使用者ID決定
-p FILE 支援 支援 支援 檔案存在, 並且它是一個具名管道 (or FIFO)
-r FILE 支援 支援 支援 檔案存在, 並且可讀
-s FILE 支援 支援 支援 檔案存在, 並且它的大小大於 0 位元組
-S FILE 支援 支援 支援 檔案存在, 並且它是一個 socket
-t [FD] 支援 支援 支援 在一個終端開啟 FD(檔案描述符), 預設是 stdout
-u FILE 支援 支援 支援 檔案存在, 並且 set-user-ID 被設定
-w FILE 支援 支援 支援 檔案存在, 並且可寫
-x FILE 支援 支援 支援 檔案存在, 並且可執行
-z STRING 支援 支援 支援 STRING 的長度為 0

 

2. 特殊參數

shell中的特殊參數是shell的內部變數, 要用 首碼$ 來使用.

比如 echo $? 就是擷取 shell內部變數 "?" 的值.

 

內容變數一覽:

參數

定義

* 從 1 開始, 完成所有位置變數列表. 如果被雙引號引上, 成為有 IFS (內部檔案分隔字元)值的第一個字元分割的單詞
@ 從 1 開始, 完成所有位置變數列表. 如果被雙引號引上, 將每一個位置參數變成單個詞
# 以十進位表示的位置參數數目
? 最後或者最近一個前台任務的返回碼. 如果任務被一個訊號殺掉, 傳回值為 128 加上訊號的值. 例如: 標準kill訊號值是 15, 那麼傳回值就是 143
- 所有發送給 shell 的標誌, 或者 set 命令提供的標誌
$ shell 進程ID. 如果在子shell中, 它被擴充為當前shell的值, 而不是子shell的值
! 最近被放到後台執行的命令的進程ID
_ 擴充為前一個命令的最後一個參數
0 擴充為shell或者shell指令碼的名字
1…9 提供給shell, 函數或者指令碼的位置參數. 比 9 大的值可以用 ${number} 來訪問

Shell指令碼中的 測試開關 和 特殊參數

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.