shell腳本中的if中多條件語句如何寫
寫法:if [ $a = "aa" -a $b = "bb" ] || [$c = "cc" -a $d = "dd" ];
then
echo "success"
fi
擴展資料:
shell腳本if判斷多個條件
1、如果a>b且aif (( a >b )) && (( a $b ]] && [[ $a 2、如果a>b或aif (( a >b )) || (( a $b ]] || [[ $a 3、 -o = or , -a = and , 但我一向只用 || 或者 &&
4、-ne 比較數字 (numberic) ; != 比較字符 (string), 但后者拿來比較數字也可,只是不是標準用法 -lt 是等同 -lt , -eq , -gt , -ge -le , 這些是 test , 就是 [ ] 這個內建命令使用的條件操 作符, 數字用, = , != 字符用, == 這個該是 [[ ]] 用的, 可用來比對正規表示式, 但用在 [ ] 也可。
linux shell的if語句
echo "你繼續嗎?Y or N"
read ANSWER
if [ “$ANSWER” = “Y” -o “$ANSWER” = “y” ] ; then
echo "你選擇了$ANSWER";
elif [ “$ANSWER” = “N” -o “$ANSWER” = “n” ] ; then
echo "你選擇了$ANSWER";
else
echo "輸入錯誤"
exit
fi
-----你試試
Linux shell 條件語句while 條件的 寫法
#可以使用正則表達式。
#寫個簡單腳本測試一下:
#!/bin/sh
CenterNumber=123
while [ $CenterNumber=[:digit:*] ]
do
echo "a"
sleep 1
done#執行結果如下:
希望可以幫助到你!
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 非空串。
Linux bash/sh/shell編程中的if語句應該怎么寫
line="#abcmatch BCD"
REGEXP="^[#]"
# 變量賦值不需要前綴$
if [[ $line =~ $REGEXP ]] && [[ $line != '' ]]; then
#粗心 [[ ]] 要配對使用 你寫成了 [[ ] [ ]]
true #shell 不能使用空的if 結構,至少要有一個命令。 可以使用true命令 。
echo yes
else
echo NO
fi
### end
另外Bash 不支持完全的正則表達式。[[ “$line” =~ “$REGEXP” ]] 不能達到你想要的效果。
需要使用echo "$string"| grep -qP /regexp/
Zsh 支持完整的正則表達式, [[ “$line” =~ “$REGEXP” ]] 能達到你想要的效果。