Bash
將變數與字元串 bash 進行比較
st.txt
“失敗” “aa” “2018-04-03T17:43:38Z”
while read status name date; do case "$status" in 'aborted') echo -1 ;; "failed") echo -1 ;; 'succeeded') echo 0 ;; *) echo 0 esac exit 0 done < st.txt
但我總是得到 0 作為輸出。
您應該替換
"failed"
為"\"failed\""
. 它應該是:while read status name date; do case "$status" in 'aborted') echo -1 ;; "\"failed\"") echo -1 ;; 'succeeded') echo 0 ;; *) echo 0 esac exit 0 done<st.txt
也考慮使用
read with -r
.還有一種更簡單的方法可以做你想做的事:
if [ "$(cut -d ' ' -f1 st.txt)" = "\"failed\"" ] then printf -- "-1\n" fi
另一種解決方案是在雙引號字元串周圍添加單引號:
while read status name date; do case "$status" in '"aborted"') echo -1 ;; '"failed"') echo -1 ;; '"succeeded"') echo 0 ;; *) echo 0 esac exit 0 done < st.txt