「読み取り」コマンドではファイルの内容を転送できません。

「読み取り」コマンドではファイルの内容を転送できません。

後でさらに処理するために、ファイルの内容を配列として読み取ろうとします。read配列値を埋めるコマンドを使用しています。以下は、エラーを引き起こすコードの一部です。

read -r -a changefileArr < changedfile.txt

以下は私が受け取ったエラーです。

read: bad option: -a

使っていますこれちなみにホームページ。私はMAC OS Montereyを使用しています(デフォルトのシェルはzshです)。インデックスベースの反復を実行する必要があるため、配列を使用する必要があります。後でコードからインデックスが必要です。より良い方法がある場合(readコマンドを使用しなくても)コメントを残してください。

編集1:

  • 私はこれらのコマンドをテストするためにLinux端末を使用しています。私はどんなシェバンも与えませんでした。
  • read -azshで動作しない場合。 zshに対して得ることができる同じコマンドはありますか?

ベストアンサー1

使用中なので、組み込みコマンド(例:動作する必要があります)を期待しzshてはいけません。bashread

入力すると、チュートリアルを続行できるインタラクティブbashシェルに入ります。bash気づく地図時間配列変数の誤った処理これらの変数(実際にはすべての変数)は、使用時に二重引用符で囲む必要がありますが、そうしません。

read -r -a changefileArr < changedfile.txt      # Read line of items into array

printf "element: %s\n" "${changefileArr[@]}"    # An example
echo "${changefileArr[@]}"                      # Unpredictable if first value starts with a dash
echo ${changefileArr[@]}                        # WRONG !

bash注:zshデフォルトの対話型シェルを使用している場合でも、シェルスクリプトを作成して使用できます。

おすすめ記事