[精讚] [會員登入]
144

[CSH/TCSH] 使用tcsh SHELL #2 --檢查、傳值

6. 檔案或目錄的檢查 SHELL 中常會用到檔案或目錄的檢查,一般性的語法是: if [ Operator

此文完整連結 http://n.sfs.tw/11318

複製連結 [CSH/TCSH] 使用tcsh SHELL #2 --檢查、傳值@新精讚
(文章歡迎轉載,務必尊重版權註明連結來源)
2017-06-17 14:41:32 最後編修
2017-06-15 12:56:40 By 瘦河馬
 

[CSH/TCSH] 使用tcsh SHELL #1 --變數、控制和迴圈
[CSH/TCSH] 使用tcsh SHELL #2 --檢查、傳值

6. 檔案或目錄的檢查

SHELL 中常會用到檔案、目錄或權限的檢查,一般性的語法是:

if ( Operator "Filename" ) then
  ^ ^        ^          ^  ^    注意 ^ 的空白
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. 確認變數是否存在

echo $?var

印出1 代表存在;0代表不存在

ex7. 印出所有變數或環境變數

$ set
$ env
$ printenv

 

 

你可能感興趣的文章

[vi/vim] 如何讓 root 帳號的 vim 可以顯示顏色 如何讓 root 帳號的 vim 可以顯示顏色

[bc] linux 的計算機bc 如何進行8進位、10進位、16進位等轉換 linux 的計算機bc--如何進行8進位、10進位、16進位等轉換

[Linux] 進行字串取代,三種字串取代的方法 使用vi、sed、perl來取代字串

[CSH/TCSH] 使用tcsh SHELL #1 --變數、控制和迴圈 在FREEBSD或LINUX中使用TCSH SHELL,進行一些基本的指令操作。

windows, linux, freebsd 下安裝git windows, linux, freebsd 下安裝git

使用sdiff來比對檔案 linux 有一個不錯的工具可以來比對文字檔案,很有效率,叫sdiff

[SIP] OPENSER LINUX版本安裝全記錄 [SIP] OPENSER LINUX版本安裝全記錄

[find] 活用 find 指令參數-exec 執行找到的結果 在linux/ freebsd 中查找檔案最強的就是 find,他有一個參數相當好用:-exec

Vim .vimrc 設定,讓vim更好用 vim 是 unix-like 系統中最常用的編輯器,經由妥善的設定讓vim更好用

[Rsync] Freebsd10+Rsync / Centos7+Rsync Freebsd10 和 Centos7 安裝Rsync

我有話要說


限制:留言最高字數1000字,超過部分會被截掉。 限制:未登入訪客,每則留言間隔需超過10分鐘,每日最多5則留言。

訪客留言

[無留言]

隨機好文

SELinux 常用指令和檔案 在Redhat系列中,Centos5以後加入了selinux,他並沒有這麼可怕,不必每次看到Selinux ,就想把他

安裝SPHINX支援中文 新版本的 sphinx 和舊版不同,網路上很多範例和教學是不能用的。此文是安裝和設定方法分享

此一時彼一時 我是不是易怒的人,其實我也不知道,總之我常會失控,不知道自己在幹嘛。這近生活過得浮浮的,不是很踏實,總會想太多,我甚至會

對物品的感情 這個議題很奇怪,可是大部分的人都會有,物品是死的,壞了就淘汰,出新的就被替換。為何會有情感?

在Centos7 下安裝 Wildfly10 wildfly以前叫JBoss,2014.11.20改名叫Wildfly,起始版本是Wildfly8,現在已經出到Wil