我想寫一個代碼,我已經使用了IF語句。 這裏我想比較使用awk語句獲得的2個字符串。 請幫助我...如果這是可能的。UNIX:將值傳遞給IF條件而不是值
if [ "awk '/$search/ {print $3}' rpt1.txt" -eq "awk '/$search/ {print $3}' rpt2.txt" ]
我想寫一個代碼,我已經使用了IF語句。 這裏我想比較使用awk語句獲得的2個字符串。 請幫助我...如果這是可能的。UNIX:將值傳遞給IF條件而不是值
if [ "awk '/$search/ {print $3}' rpt1.txt" -eq "awk '/$search/ {print $3}' rpt2.txt" ]
當然,使用$()
或``。
if [ $(awk '/$search/ {print $3}' rpt1.txt) -eq $(awk '/$search/ {print $3}' rpt2.txt) ]
如果你想字符串比較,而不是數字,你可能想=
代替-eq
雖然。
可能會讀更好,如果你犯了一個功能太:
search_report() {
awk "/$1/ { print \$3 }" $2
}
if [ $(search_report $search rpt1.txt) -eq $(search_report $search rpt2.txt) ]
...
可以stdout中捕捉到這樣一個變量:
variable=$(command)
試試這個
rpt1=$(awk '/$search/ {print $3}' rpt1.txt)
rpt2=$(awk '/$search/ {print $3}' rpt2.txt)
if [ "${rpt1}" == "${rpt2}" ]; then
echo "match";
fi
運營商-eq
僅適用於整數,這就是爲什麼我使用==
代替。
更多有關捕獲標準輸出 http://www.cyberciti.biz/faq/unix-linux-bsd-appleosx-bash-assign-variable-command-output/
這是運營商在bash的一個很好的總結 http://tldp.org/LDP/abs/html/comparison-ops.html
非常感謝丹尼爾。我會按照你的信息進行。 – greatvedas 2013-03-20 13:06:44