自動目錄
[CSH/TCSH] 使用tcsh SHELL #1 --變數、控制和迴圈
[CSH/TCSH] 使用tcsh SHELL #2 --檢查、傳值
6. 檔案或目錄的檢查
SHELL 中常會用到檔案、目錄或權限的檢查,一般性的語法是:
^ ^ ^ ^ ^ 注意 ^ 的空白
end if
1 空白格的使用
2 if後面是小括號而不是中括號,注意這是CSH/TCSH不是BASH/SH
Operator運算子可以用的參數為:
-d file is a directory
-e file exists
-f file is a plain file
-o user is owner
-r user has read access
-w user has write access
-x user has execute access
-z file has zero length
範例
ex1. 檢查檔案是否存在
if ( -e "somefile.txt" ) then
echo "檔somefile.txt存在"
else
echo "檔somefile.txt不存在"
endif
ex2. 檢查是否有存取權限
if ( -w "diamond.txt" ) then
echo "檔somefile.txt可寫入"
else
echo "檔somefile.txt不可寫入"
endif
ex3. 檔案存在且大小不為0
if ( ! -d "heart.txt" && ! -z "heart.txt" ) then
echo "檔heart.txt不是目錄且大小不為0"
else
echo "檔heart.txt 是目錄或大小為0"
endif
7. Shell 的傳入參數及變數
如果Shell 執行時有代入引數,他的引數分別為:
$argv[0]或$0 命令名
$argv[n]或$n 第n個參數
$argv[*]或$* 從1開始的所有參數
$#argv或$# 參數個數
ex4. 判斷使用者有沒有帶入引數,沒有就中止
if ( $# <= 0 ) then
echo "請代入參數,語法 ./i.sh argv0 argv1"
exit
endif
ex5. 取回傳入的最後一個引數,無傳入為空白
echo $argv[$#];
ex6. 確認變數是否存在
印出1 代表存在;0代表不存在
ex7. 印出所有變數或環境變數
$ env
$ printenv