重複の可能性:
find -exec呼び出しでカスタム関数を実行する
次のようなbashコードがあるとしましょう。
!#/bin/bash
function print_echo (){
echo "This is print_echo Function" $1;
}
find ./ -iname "*" -exec print_echo {} \;
すべての-exec
コマンドに対して次のエラーが発生します。
find: `print_echo': No such file or directory
注:この前にメインプログラムをテストし、別のアルゴリズムでプログラムを解決しましたが、ここに問題があります。findコマンドが組み込みのbashコマンドと関数名を引数として受け入れないのはなぜですか-exec
?
ベストアンサー1
find
なぜ機能が気に入らないのかわかりません。解決策は次のとおりです。
#!/bin/bash
function print_echo (){
echo "This is print_echo Function" $1;
}
for f in $(find . -iname "*")
do
print_echo $f
done
修正する
上記のスクリプトは、スペースを含むファイルでは機能しません。次のアップデートの機能は次のとおりです。
#!/bin/bash
function print_echo (){
echo "This is print_echo Function" $1;
}
find . -iname "*.sh" | \
while read f
do
print_echo "$f"
done