linux 中條件測試判斷

文件條件測試判斷:

  -e 文件存在

  -a 文件存在

  這個選項的效果與-e相同. 但是它已經被"棄用"了, 并且不鼓勵使用.

  -f 表示這個文件是一個一般文件(并不是目錄或者設備 文件)

  -s 文件大小不為零

  -d 表示這是一個目錄

  -b 表示這是一個塊設備(硬盤, 光驅, 等等.)

  -c 表示這是一個字符設備(鍵盤, modem, 聲卡, 等等.)

  -p 這個文件是一個管 道

  -h 這是一個符 號鏈接

  -L 這是一個符號鏈接

  -S 表示這是一個socket

  -t 文件(描 述符)被關聯到一個終端設備上

  這個測試選項一般被用來檢測腳本中的stdin([ -t 0 ]) 或者stdout([ -t 1 ])是否來自于一個終端.

  -r 文件是否具有可讀權限(指的是正在運 行這個測試命令的用戶是否具有讀權限)

  -w 文件是否具有可寫權限(指的是正在運行這個測試命令的用戶是否具有寫權限)

  -x 文件是否具有可執行權限(指的是正在運行這個測試命令的用戶是否具有可執行權限)

  -g set-group-id(sgid)標記被設置到文件或目錄上

  如果目錄具有sgid標 記的話, 那么在這個目錄下所創建的文件將屬于擁有這個目錄的用戶組, 而不必是創建這個文件的用戶組. 這個特性對于在一個工作組中共享目錄非常有用.

  -u set-user-id (suid)標記被設置到文件上

  如果一個root用戶所擁有的二進制可執行文件設置了set-user-id標記位的話, 那么普通用戶也會以root權限來 運行這個文件. [1] 這對于需要訪問系統硬件的執行程序(比如pppd和cdrecord)非常有用. 如果沒有suid標志的話, 這些二進制執行程序是不能夠被非root用戶調用的.

  對于設置了suid標 志的文件, 在它的權限列中將會以s表示

  .

  -k

  設置粘貼位

  對于"粘貼位"的一般了解, save-text-mode標 志是一個文件權限的特殊類型. 如果文件設置了這個標志, 那么這個文件將會被保存到緩存中, 這樣可以提高訪問速度. [2] 粘貼位如果設置在目錄中, 那么它將限制寫權限. 對于設置了粘貼位的文件或目錄, 在它們的權限標記列中將會顯示t.

  如果用戶并不擁有這個設置了粘貼位的目錄, 但是他在這個目錄下具有寫權限, 那么這個用戶只能在這個目錄下刪除自己所擁有的文件. 這將有效的防止用戶在一個公共目錄中不慎覆蓋或者刪除別人的文件. 比如說/tmp目錄. (當然, 目錄的所有者或者root用 戶可以隨意刪除或重命名其中的文件.

  )

  -O 判斷你是否是文件的擁有者

  -G 文件的group-id是否與你的相同

  -N 從文件上一次被讀取到現在為止, 文件是否被修改過

  f1 -nt f2

  文件f1比 文件f2新

  f1 -ot f2

  文件f1比 文件f2舊

  f1 -ef f2

  文件f1和 文件f2是相同文件的 硬鏈接

  !

  "非" — 反轉上邊所有測試的結果(如果沒給出條件, 那么返回真).

注意:變量引用時,有且在比較中,一定要引號“” ‘’,這樣防止出現錯誤,還有就是盡量用雙中擴號中[[  ]]

[[ "$num1" == "$num2" ]]   [[ 'str1' == 'str2' ]]

字符串判斷:

  -z "STRING":判斷指定的字串為空,空則為真,不空為假

  -n "STRING":判斷指定的字串是否為不空,不空為真,空為假

 

 數值測試

  -eq:是否等于; [ $num1 -eq $num2 ]

  -ne 是否不等于

  -gt是否大于

  -ge是否大于等于

  -lt 是否小于

  -le是否小于等于

字符串測試

  ==:是否等于 兩邊要留空格

  > :是否大于

  <: 是否小于

  != 是否不等于

  =~ 左側的字符串是否能夠被右側的PATTERN所匹配

[ "$string" == "smile" ]

原創文章,作者:不忘初衷,如若轉載,請注明出處:http://www.www58058.com/67421

(0)
不忘初衷不忘初衷
上一篇 2017-02-02
下一篇 2017-02-02

相關推薦

  • SSH會話劫持實現端口轉發

    在進行滲透測試時,我們有時候會碰到搭建的測試環境、產品服務器、DMZ或者其他類似的機器群的情況,這時我們完全可以把它們看作跳板。這些系統被設計成對外交互的接口,這時候我們考慮對其他域里的用戶進行SSH會話劫持是個不錯的選擇。 那么如果你擁有了某一個跳板的控制權限,想要通過另一個域的用戶對遠程域進行訪問會怎么辦呢?當然,這時候你是沒有密碼、密鑰的,你不能拋棄二…

    系統運維 2015-03-23
  • AIX 6.1 硬件基本管理

    查看整體的硬件信息:          # prtconf #將所有系統信息輸出到屏幕上顯示          # lsdev -C #查看硬件設備信息及其工作狀態 注:硬件的設備通常為2 種狀態,"availiable"表示設備可用,de…

    Linux干貨 2015-10-18
  • N26-第六周博客

    vim編輯器及簡單shell腳本示例 請詳細總結vim編輯器的使用并完成以下練習題 1、復制/etc/rc.d/rc.sysinit文件至/tmp目錄,將/tmp/rc.sysinit文件中的以至少一個空白字符開頭的行的行首加#; [root@localhost tmp]# vim rc.sysinit:%s@^[[:space:]]\+[^[:s…

    系統運維 2017-02-16
  • Bash Shell語法之三函數簡介

     Bash Shell語法之三函數簡介 一、什么是Bash函數 像其他編程語言一樣,Shell 也支持函數。Shell函數必須先定義后使用。函數可以讓我們將一個復雜功能劃分成若干模塊,讓程序結構更加清晰,代碼重復利用率更高。 二、Bash函數定義格式 [ function ] fun () {     &nb…

    Linux干貨 2015-05-11
  • iptables實踐-week14

    系統的INPUT和OUTPUT默認策略為DROP; 1、限制本地主機的web服務器在周一不允許訪問;新請求的速率不能超過100個每秒;web服務器包含了admin字符串的頁面不允許訪問;web服務器僅允許響應報文離開本機; 規則: # 周一不能訪問web服務 ~]# iptables -R INPUT 1 -d 172.16.0.11 -p tcp –dp…

    Linux干貨 2017-05-04
  • Linux發行版的基礎目錄名稱、命名法則及功能規定

    Linux發行版的基礎目錄名稱、命名法則及功能規定 / 主層次的根,也是整個文件系統層次結構的根目錄  /bin 存放系統的命令。  /boot 存放系統的啟動文件,及其內核。  /dev 系統設備文件主目錄。  /etc 系統主要配置文件主目錄。  /home 普通用戶家目錄。  /lib 系統庫…

    Linux干貨 2016-10-31

評論列表(1條)

  • 馬哥教育
    馬哥教育 2017-04-10 15:53

    總結性的知識,可以嘗試的使用表格,加油?。?!

欧美性久久久久