質問: $file"; diff $file /some/other/path/$file; read char; done これを達成する方法は他にもあります。不思議なことに、ファイルにスペースが含まれていると、このスクリプトは失敗します。どうすればこれに対処できますか?findの出力例:./zquery - abc - do not prompt for date.csv
回答: readarrayが記載されていないことに驚いています。 <<<演算子と組み合わせて使用すると、これが非常に簡単になります。$ touch oneword "two words" $ readarray -t files <<<"$(ls)" $ for file in "${files[@]}"; do echo "|$file|"; done |oneword| |two words| <<<"$expansion"構文を使用すると、次のように、改行を含む変数を配列に分割することもできます。$ string=$(dmesg) $ readarray -t lines <<<"$string" $ echo "${lines[0]}" [ 0.000000] initializing cgroup subsys cpuset readarrayは長年bashに存在しているので、これはおそらくbashでこれを行うための正規の方法であるべきです。