簡體   English   中英

Linux Bash腳本:if中的字符串與轉義字符的比較

[英]Linux Bash Script : Comparison of strings in if with escape characters

代碼:

if [["$MP" -ne "$vl2"]]; then
    echo -e "Comparing Apples to Oranges !!\n" >> ${LOGFILE}
    subject="$0 : Warning : Please check Source Directory"
    SendEmail I "${subject}" "" "${LOGFILE}" "${vel}"
    exit  99
fi

輸出為:請檢查最后一行的錯誤。 謝謝 !

+ PG=./cleanupADir.sh
+ MP=/u01/oracle
+ TH=90
+ MT=3
+ TY=log
+ SD=/u01/oradata/logs
++ expr length /u01/oracle
+ vl1=11
++ expr substr /u01/oradata/logs 1 11
+ vl2=/u01/oradat
+ echo /u01/oradat /u01/oracle
/u01/oradat /u01/oracle
+ '[[/u01/oracle' -ne '/u01/oradat]]'
./cleanupADir.sh: line 73: [[/u01/oracle: No such file or directory

添加幾個空格后的[[和之前的]] ,和字符串改變ne!=

if [[ "$MP" != "$vl2" ]]; then

一個類似的會話:

$ set -x
$ export x=apple
+ export x=apple
+ x=apple
$ export y=orange
+ export y=orange
+ y=orange
$ if [["$x" -ne "$y"]];then echo "XXX";fi
+ '[[apple' -ne 'orange]]'
bash: [[apple: command not found
if [[ "$x" -ne "$y" ]];then echo "XXX";fi
+ [[ apple -ne orange ]]
if [[ "$x" != "$y" ]];then echo "XXX";fi
+ [[ apple != \o\r\a\n\g\e ]]
+ echo XXX
XXX

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM