質問: $ '\ n'を設定して、スペースを含むファイル名をパラメーターとして渡します。それを実行すると、次のようになります。[root@abhargava ~]# ./test.sh dirlevel1/file\ level1.txt ./test.sh: line 9: stat -c %s dirlevel1/file level1.txt: no such file or directory size is: ifsのため、シェルはコマンドをパーツに分割せずに単一のユニットとして扱っていると思います。ifsの設定を削除すると、次のようになります。[root@abhargava ~]# ./test.sh dirlevel1/file\ level1.txt stat: cannot stat `dirlevel1/file': no such file or directory stat: cannot stat `level1.txt': no such file or directory size is: したがって、パラメータを2つの異なるファイルとして扱います。次のようなディレクトリにファイルを一覧表示する他のロジックからファイル名を取得しているため、「$ @」を使用できません。for i in 'find ${arg} -type f' do calling the test.sh done できるだけ早く私を助けてください.. !!前もって感謝します....!!
回答: bash faqエントリ#50: "コマンドを変数に入れようとしていますが、複雑なケースは常に失敗します!"