誰もがスクリプトでこの手順を使用する方法を提案できますか? (最初のコマンドの出力を取得し、3つのコマンドすべてに2番目のコマンドを使用する必要があります。)
[aaa@build]$ find . -name src
./Port/bit/WE-IN/src
./MI/M-Scripts/Msg/src
./MI/M-Scripts/TT/src
[aaa@build]$ cd ./Port/bit/WE-IN/src
答え1
探しているコマンドはxargs
通常、次のように使用します。
find . -name src -print0 | xargs -I{} -0 echo {}
または明示的な質問の場合:
find . -name src -print0 | xargs -I{} -0 cd {}
答え2
あなたができることは、シェル関数を宣言し、各ディレクトリの関数を呼び出すwhileループにfindの各結果を渡すことです。
#!/bin/bash
function f
{
echo "THIS IS " $(pwd)
ls
}
find . -maxdepth 1 -type d -name "bin" -printf "%P\n" | while read DIRNAME;
do
cd $DIRNAME
f
done
実行例は次のとおりです。
$ ./findAndFunction.sh
THIS IS /home/xieerqi/bin
autostart-script.sh c java perl python README.md sergrep shell