bashshell中if[-f$2]和echo-e是什么意思看到很多判斷語句都可以帶參
if [ -f $2 ] docommanddoneif后接的是測試語句,[ ] 中相當于test命令.-f $2 一般的意思是檢測第二個位置參數是否存在echo -e 后一般會接參數,-e 若參數出現以下字符,則特別加以處理,而不會將它當成一般文字輸出:\a 發出警告聲;\b 刪除前一個字符;\c 最后不加上換行符號;\f 換行但光標仍舊停留在原來的位置;\n 換行且光標移至行首;\r 光標移至行首,但不換行;\t 插入tab;\v 與\f相同;\\ 插入\字符;\nnn 插入nnn(八進制)所代表的ASCII字符;echo 語法:echo [-ne][字符串]或 echo [--help][--version]。
linuxshell編程if語句內判斷參數有哪些呢
–b 當file存在并且是塊文件時返回真 -c 當file存在并且是字符文件時返回真 -d 當pathname存在并且是一個目錄時返回真 -e 當pathname指定的文件或目錄存在時返回真 -f 當file存在并且是正規文件時返回真 -g 當由pathname指定的文件或目錄存在并且設置了SGID位時返回為真 -h 當file存在并且是符號鏈接文件時返回真,該選項在一些老系統上無效 -k 當由pathname指定的文件或目錄存在并且設置了“粘滯”位時返回真 -p 當file存在并且是命令管道時返回為真 -r 當由pathname指定的文件或目錄存在并且可讀時返回為真 -s 當file存在文件大小大于0時返回真 -u 當由pathname指定的文件或目錄存在并且設置了SUID位時返回真 -w 當由pathname指定的文件或目錄存在并且可執行時返回真。
一個目錄為了它的內容被訪問必然是可執行的。 -o 當由pathname指定的文件或目錄存在并且被子當前進程的有效用戶ID所指定的用戶擁有時返回真。
UNIX Shell 里面比較字符寫法: -eq 等于 -ne 不等于 -gt 大于 -lt 小于 -le 小于等于 -ge 大于等于 -z 空串 = 兩個字符相等 != 兩個字符不等 -n 非空串。
shell腳本中 if 判斷時候-s是什么意思
-s file 文件大小非0時為真[ -f "somefile" ] :判斷是否是一個文件[ -x "/bin/ls" ] :判斷/bin/ls是否存在并有可執行權限[ -n "$var" ] :判斷$var變量是否有值[ "$a" = "$b" ] :判斷$a和$b是否相等 -r file 用戶可讀為真-w file 用戶可寫為真-x file 用戶可執行為真-f file 文件為正規文件為真-d file 文件為目錄為真-c file 文件為字符特殊文件為真-b file 文件為塊特殊文件為真-s file 文件大小非0時為真-t file 當文件描述符(默認為1)指定的設備為終端時為真。
shell if函數中幾種條件判斷的區別
1、整數比較:[plain] view plain copy-eq 等于,如:if [ "$a" -eq "$b" ] 或 if [ $a -eq $b ] -ne 不等于,如:if [ "$a" -ne "$b" ] -gt 大于,如:if [ "$a" -gt "$b" ] -ge 大于等于,如:if [ "$a" -ge "$b" ] -lt 小于,如:if [ "$a" -lt "$b" ] -le 小于等于,如:if [ "$a" -le "$b" ] == 等于,如:if if (("$a" == "$b")) < 小于(需要雙括號),如:(("$a" < "$b")) <= 小于等于(需要雙括號),如:(("$a" <= "$b")) > 大于(需要雙括號),如:(("$a" > "$b")) >= 大于等于(需要雙括號),如:(("$a" >= "$b")) 特別說明的是(())字符和括號之間不需要留空格,但[[ ]],[]要求比較嚴格,需要留空格。
2、字符串比較,上面的-eq,-nq等公式只適用于數字比較,不適用于字符比較[plain] view plain copy= 等于,如:if [ "$a" = "$b" ] == 等于,如:if [ "$a" == "$b" ],與=等價 [[ $a == z* ]] # 如果$a以"z"開頭(模式匹配)那么將為true [[ $a == "z*" ]] # 如果$a等于z*(字符匹配),那么結果為true [ $a == z* ] # File globbing 和word splitting將會發生 [ "$a" == "z*" ] # 如果$a等于z*(字符匹配),那么結果為true 3、括號之間的區別:[[ ]],[]對括號內變量要求嚴格且且敏感,但(())則相對寬松一些[plain] view plain copy1、if [[ $a == $b ]] 和 if [[ $a == $b ]] 等價 但if [[ $a == $b ]] 和if [[ a == b ]] 不等價 2、if (($a == $b)) 和 if (($a = $b))等價 if (($a == $b)) 和 if ((a == b)) 等價 4、多條件判斷:&&和||適用于[[ ]]和(),-a和-o適用于[]中舉例如下:[plain] view plain copyif ((i == 1)) 和 if [ "$i" == 1 ]等價 if [[ "$i" = 1 && "$j" = 2 ]] 和 if ((i = 1)) || ((j = 2)) 5、其它說明:!= 不等于,如:if [ "$a" != "$b" ] 這個操作符將在[[]]結構中使用模式匹配. < 小于,在ASCII字母順序下.如: if [[ "$a" < "$b" ]] if [ "$a" \< "$b" ] 注意:在[]結構中"<"需要被轉義. > 大于,在ASCII字母順序下.如: if [[ "$a" > "$b" ]] if [ "$a" \> "$b" ]。