ここで何が起こっているのかわかりません。私はMacでBash 3.2を使用しています。私は持っています:
ores_resource(){
for f in "$(cd "$HOME/.oresoftware/bash" && find . -type f)"; do
f="${f:2}"
echo "my file $f"
done;
}
私は次のような答えを受けました。
my file r2g.sh
./fame.completion.sh
./read_json.sh
./nlu.sh
./lmx.sh
./public-bash-utils.sh
./run-tsc-if.sh
./r2g.completion.sh
./fame.sh
./waldo.sh
./nlu.completion.sh
それでは、ここで正確に何が起こっているのでしょうか?各行の前にある「マイファイル」がログアウトされると思いましたか?
答え1
オプションを使用するfind
ソリューションは次のとおりです-exec
。
ores_resource() {
cd $HOME/.oresoftware/bash
find . -type f -exec bash -c 'echo "my file ${1:2}"' bash {} \;
}
find
見つかったファイル名ごとに、次のコマンド文字列を使用して新しいbashプロセスが開始されます-c
。各ファイル名は{}
bashプロセスにパラメータとして渡されます$1
(variablesと同様に$f
)。