Linux

收到以下錯誤:-bash:1:嘗試執行 for 循環時找不到命令

  • August 29, 2019

當我嘗試執行以下命令時:

for x in $(seq 10); do echo $($x >> c.txt); done

我收到以下錯誤:

-bash: 1: command not found

shell 在看到時echo $($x >> c.txt)會首先處理命令替換$($x >> c.txt)。這將被命令的輸出替換$x >> c.txt。在循環$x1第一次迭代中,但沒有這樣的命令,因此出現錯誤(如果沒有與 1 到 10 範圍內的整數對應的命令,則循環的每次迭代都會出現一個錯誤;輸出在問題中可能被截斷)。

你可能想做一些類似的事情

for x in $(seq 10); do
  echo "$x" >>c.txt
done

(沒有命令替換),或者只是

seq 10 >>c.txt

這將產生等效的效果。

在第一次執行循環時,x將是1,因此您執行echo $(1 >> c.txt)並且 shell 嘗試執行1,但未找到。

如果您添加您實際嘗試做的事情,我們可以指出要更改的內容。

引用自:https://unix.stackexchange.com/questions/537993