tcsh 基本命令
shell?是一種命令行程序, linux?用戶可以通過?shell 與操作系統內核進行交互。
shell?分為好幾種:sh,bash,csh,tcsh, 其中?tcsh?是?csh?的增強版,常用的兩種?shell?就是?bash?和?tcsh。
一般linux?默認shell?是?bash,但是IC公司用的較多的是 tcsh,二者的語法和內建命令相差較大,關于bash,網上資料非常多,這里主要記錄?tcsh?的語法和基本命令。
具體使用哪個shell?可以在腳本第一行定義: #! /bin/bash? 或者? ?#! /bin/tcsh
查看當前默認shell?可以看環境變量? echo $SHELL?
?
tcsh 基本語法:
?
1. 創建字符串變量:? set? var =?hello;?set?var01 = “hello?world”?;echo $var? ?#?注意等于號
? ? 創建數值變量:? ? @? num = 101? ; @?n01 = $num * 2 ;?echo $n01? ? # 注意用 @?開頭,且@與變量之間需留空格
?
2.?控制流(if? while? foreach )
(a).? if (condition)? then? ?#?注意?if?和?then?必須寫在同一行,if?條件用小括號
cmd01
cmd02? #?可以寫很多行命令
else?
cmd03
endif? ??#?一定要有這個?endif?結束
(b).?while ( condition )
cmd01
end
(c). foreach? var? ( var-list )?
cmd01
end
?
3.?測試表達式
if ( -e? file01 )?then? ? #?檢測文件?file01?是否存在
cmd01
end
常用檢測命令:
-e? file01? 檢測文件?file01?是否存在,存在則返回 1,?否則返回 0
-f? ?file01? 檢測文件?file01?是否是普通文件
-d? file01? 檢測文件?file01?是否是目錄??
-w file01? ?檢測文件?file01?是否可寫
?
?4.?命令置換
如果要將一個shell命令的執行結果作為另一個命令的輸出,可以用 `cmd`,注意這里的? `? 不是單引號,而是鍵盤 ESC?下方那個鍵,比如:
save_block? -as? stage_`date`??
echo? " the stage finish at? `date` "? ?#?雙引號中的大部分特殊字符都會失去其特殊意義,但是有三種字符除外:變量置換符、命令置換符、轉義字符,即??"? ?$ `? \? "?
單引號中所有特殊字符都會變成普通字符,適合用在?alias?中
?
5.? 連續執行
如果需要在一行命令中連續執行多條shell命令,有以下幾種寫法:
1) cmd1 ; cmd2 ; cmd3? ? ? ? ? ? # 按順序執行三個 cmd,不管是否成功執行
2) cmd1 && cmd2 && cmd3?? ? # 順序執行三個 cmd,只有前邊的 cmd 執行成功,才會繼續執行
3) cmd1 || cmd2 || cmd3?? ? ? ? #? 如果 cmd1 執行成功,就不執行之后的 cmd。
?
?6.?其他命令
setenv? ?var? value? ? ? # 設置環境變量?var ,全局可用,注意這里沒有等于號
printenv? env_name? ? # 顯示環境變量,如果沒參數,就顯示所有環境變量
umask? 022? ?#?設置新建文件默認屬性, 022?是八進制,且表示取消掉權限,所以等價于?chmod 755
?
?7.?幾個 tcsh?實例
1).? ?每隔半小時檢測一次 flag 文件是否存在,不存在就繼續等待,若存在就執行make?run
文件名?auto_run.sh :
?
?
?
?
to?be?continue ...
?
|--------------------------------------|
?
?
轉載于:https://www.cnblogs.com/xiaoxie2014/p/11475568.html
總結
- 上一篇: 游戏开发中的数学和物理算法(7):角度
- 下一篇: dedecms织梦最新0day