歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux編程 >> SHELL編程 >> linux shell 常用腳本語句語法收集 推薦

linux shell 常用腳本語句語法收集 推薦

日期:2017/3/1 18:08:44   编辑:SHELL編程
1shell中的if語句語法
我發現有時候等於是用eq表示,有時候用=標准,不明白
==============
eq數值
=字符串!!!
==============
可以看看man test
==============
流程控制

if 表達式 如果條件為真則執行then後面的部分:
if ....
then
....
elif ....
then
....
else
....
fi
大多數情況下,可以使用測試命令來對條件進行測試。比如可以比較字符串、判斷文件是否存在及是否可讀等等…
通常用 [ ] 來表示條件測試。注意這裡的空格很重要。要確保方括號的空格。
[ -f somefile ] :判斷是否是一個文件
[ -x /bin/ls ] :判斷/bin/ls是否存在並有可執行權限
[ -n $var ] :判斷$var變量是否有值
[ $a = $b ] :判斷$a和$b是否相等
==============
今天看到一本書,上面說if語句中如果用=,<,>等比較符號是,應該寫在括號中,如果是用-eq,-lt等就應該寫在[ ]中,是這樣嘛??
==============
這應該是針對 ksh/bash 的,因為它們都對原來的sh進行了擴展,可以直接使用
< > = 來進行數值判斷,但是就象你提到的,要寫在 (( )) 中。
==============
if 之後的判斷是test語法,而
if [表達式] 和
if test 表達式
是等價的
++++++++++++++++++++++++++++++++++++
test命令用法:
1)判斷表達式
if test (表達式為真)
if test !表達式為假
test 表達式1 –a 表達式2 兩個表達式都為真
test 表達式1 –o 表達式2 兩個表達式有一個為真

2)判斷字符串
test –n 字符串 字符串的長度非零
test –z 字符串 字符串的長度為零
test 字符串1=字符串2 字符串相等
test 字符串1!=字符串2 字符串不等

3)判斷整數
test 整數1 –eq 整數2 整數相等
test 整數1 –ge 整數2 整數1大於等於整數2
test 整數1 –gt 整數2 整數1大於整數2
test 整數1 –le 整數2 整數1小於等於整數2
test 整數1 –lt 整數2 整數1小於整數2
test 整數1 –ne 整數2 整數1不等於整數2

4)判斷文件
test File1 –ef File2 兩個文件具有同樣的設備號和i結點號
test File1 –nt File2 文件1比文件2 新
test File1 –ot File2 文件1比文件2 舊
test –b File 文件存在並且是塊設備文件
test –c File 文件存在並且是字符設備文件
test –d File 文件存在並且是目錄
test –e File 文件存在
test –f File 文件存在並且是正規文件
test –g File 文件存在並且是設置了組ID
test –G File 文件存在並且屬於有效組ID
test –h File 文件存在並且是一個符號鏈接(同-L)
test –k File 文件存在並且設置了sticky位
test –b File 文件存在並且是塊設備文件
test –L File 文件存在並且是一個符號鏈接(同-h)
test –o File 文件存在並且屬於有效用戶ID
test –p File 文件存在並且是一個命名管道
test –r File 文件存在並且可讀
test –s File 文件存在並且是一個套接字
test –t FD 文件描述符是在一個終端打開的轉載請注明文章來

命令行內循環:
a=0 && while [ $a -lt 10 ] ; do echo $a && a=`expr $a + 1` ; done
Copyright © Linux教程網 All Rights Reserved