現在のディレクトリにbashスクリプトinstall.sh
があり、複数のディレクトリを含むapps
ディレクトリがあります。 appフォルダー内のこれらのサブディレクトリをループして、スクリプトを実行したいと思います。最初のフォルダーでスクリプトを実行すると、戻って次のフォルダーに入ります。私はこれを試しましたが、次々にスキップしています。つまり、すべての奇数フォルダーに入り、偶数フォルダーに入っていないということです。
install.sh
のコード
for f in apps/*;
do
[ -d $f ] && cd "$f" && echo Entering into $f and installing packages
cd ..
done;
親ディレクトリのフルパス(私の場合はapps
ディレクトリが私のホームディレクトリにあります)を使用し、余分なコマンドを1つ削除します(cd ..
)
for f in ~/apps/*;
do
[ -d $f ] && cd "$f" && echo Entering into $f and installing packages
done;
スクリーンショットを参照:cd ..
コマンドを使用し、apps/*
を使用
スクリーンショットを参照:cd ..
コマンドなしで~/apps/*
を使用
この提案には、find
とともにexec
を使用できます。あなたのinstall.sh
は
#!/bin/bash
find ./apps -type d -exec echo Entering into {} and installing packages \;
-exec
の後のテキストをコマンドに置き換えます
例えば
#!/bin/bash
find ./apps -type d -exec touch {}/test.txt \;
アプリとそのすべてのサブディレクトリをループし、text.txtファイルを作成します