Bash
“[(測試)語句中的參數太多”
這是我在 Linux 上的第一個“if-else”腳本。它給出了錯誤
[: too many arguments
程式碼:
n=0 if [ $n % 2 -eq 0 ] then echo "even number" fi
如何糾正它。
數學
bash
必須在arithmetic context
. 在您目前的實現中,您將“$n”、“%”和“2”作為 args 提供給[
,這不會執行數學運算。這是一個執行數學 n 算術上下文的範例:if [ "$((n % 2))" -eq 0 ]
在上面的例子中,
$(())
shell 擴展了結果,然後再被[
命令看到。您可以通過刪除對以下的呼叫來簡化此操作[
:if (( (n % 2) == 0 ))