2

以下のコードを試したところ、機能しません。このコードを修正することをお勧めします。

echo abc.txt | while read name; do find . -name $name; done

出力成功:./ rak / abc.txt

echo 'abc.txt pqr.txt' | while read name; do find . -name $name; done

出力エラー:検索:0652-009論理積がありません

echo "abc.txt pqr.txt" | while read name; do find . -name $name; done

出力エラー:検索:0652-009論理積がありません

と同じエラー

echo "abc.txt" "pqr.txt" | while read name; do find . -name $name; done
echo 'abc.txt' 'pqr.txt' | while read name; do find . -name $name; done

この問題を解決する方法を提案してください...

4

1 に答える 1

4

問題は、複数のエントリが1行としてパイプに送信され、読み取りが両方の文字列を取得して、2つの文字列を含むものをname処理することです。$name

次のようなものを使用する必要があります。

echo -e "abc.txt\npqr.txt" | while read name; do find . -name $name; done

つまり、アイテムを改行で区切ります。

echo "'$name'"の代わりにを使用してこれをデバッグしてみてくださいfind。そうすれば、何が起こっているのかがわかります。

さらに、ファイル名の名前にスペースが含まれていると予想される場合と同じように、検索での使用を引用符で囲んで使用します$name。これにより、最初に発生したのと同じエラーメッセージが表示されます。

于 2012-07-03T09:57:39.320 に答える