問題描述
與 linus 條件 '‑z' '‑n' 混淆 (Confuse with the linus conditions '‑z' '‑n')
這是我的腳本:
#!/bin/bash
read ‑p "para:" teatp
if [ ‑z $teatp ]; then
echo '‑z is ture'
else
echo '‑z is false'
fi
if [ ‑n $teatp ]; then
echo '‑n is ture'
else
echo '‑n is false'
fi
當我什麼都不輸入並按回車時,結果是
para:
‑z is ture
‑n is ture
另一方面,當我輸入一些東西並按回車時,結果是
para:qwer1234
‑z is false
‑n is ture
讓我困惑的是第一個結果‑n is ture
。我認為 ‑n
和 ‑z
是反義詞,但為什麼結果相同?一定有什麼我忽略或誤解的。如果有人能指出,我將不勝感激
參考解法
方法 1:
the #testp should be quote by double quotation marks? like:
[ ‑n "$teatp" ]