次のエラーが発生しました:-bash:1:forループの実行中にコマンドが見つかりません。

次のエラーが発生しました:-bash:1:forループの実行中にコマンドが見つかりません。

次のコマンドを実行しようとすると:

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

次のエラーが発生します。

-bash: 1: command not found

答え1

これを確認した後にシェルが行うことは、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

これは同じ効果があります。

答え2

ループを初めて実行するときはxwill なので、1実行するとecho $(1 >> c.txt)シェルは実行しようとし1ますが、見つかりません。

実際にやりたいことを追加すると、何を変えるべきかを指摘できます。

答え3

あなたのbash定義がスクリプトで正しく定義されていないようです。

出力:

-bash: 1: コマンドが見つかりません。

通常、これはbash定義が正しく作成されていないことを意味します。スクリプトの最初の行が次のように定義されていることを確認してください。

#!/bin/bash

Bashが別の場所にある場合は、次のように見つけることもできます。

which bash

関連情報