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 下方那個鍵,比如:

  echo  stage_`date`     #(而在 tcl 語言中,引用shell命令的格式是  echo stage_[sh 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 ...

 

|--------------------------------------|

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM