3

directory から実行すると、 directory内の directoryBのディレクトリ構造をミラーリングする bash スクリプトを作成しています。AB

現在、私は次のようにやっています:

 #!/bin/bash          

 dirify () {
    echo $1
 }
 export -f dirify

 find "../test" -type d -exec bash -c "dirify '{}'" \;

このスクリプトを directory から実行していますB。これ../testは directoryAです。幸いなことに、テストに使用しているディレクトリには'、名前に が含まれるフォルダーが含まれています。このスクリプトを実行すると、bash がこれらのディレクトリに到達すると、次のエラーが発生します。

> bash: -c: line 0: unexpected EOF while looking for matching `''
> bash: -c: line 1: syntax error: unexpected end of file

(行 0 と行 1 はdirify()関数内の行を参照することに注意してください)

この問題をより簡単に説明すると、次のようになります。

find "../test" -exec bash -c "echo '{}'" \;

この例では、同じエラーが発生します。

とにかく、これは問題です。本番環境では、ファイル パスに'文字が含まれていないと想定できないからです。

とにかくこの問題の周りにありますか?

4

1 に答える 1