関数、コマンド、および組み込み機能の検索

関数、コマンド、および組み込み機能の検索

重複の可能性:
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

おすすめ記事