2つのループを使用するスクリプトがあります。
最初のループ- 特定のファイルを検索し、そのファイルが存在する場合は追加のテストを実行します。私はサーバーでCPUをあまり使用しないようにcontinue
ループで使用することにしました。
2回目のサイクル- 最初のループに基づいて結果を印刷します。
スクリプトはおおよそ次のようになります。
for line in `find ./ -type f`; do
# first file test
if [[ -f /directory/test1 ]]; then
present=1
continue
fi
# second file test
if [[ -f /directory/test2 ]]; then
present=1
continue
fi
done
if [[ $present = '1' ]]; then
echo "exists"
else
echo "does not exist"
fi
したがって、デフォルトでは、最初のテスト(最初のファイルテストまたは2番目のファイルテスト)が有効な場合、ループは壊れてcontinue
新しい反復が開始されるため、スクリプトの一番下に到達しません。
これにより2番目のテストが失敗し、スクリプトは次のファイルを含む結果のみを印刷します。存在しない。
私の質問は、すべての結果(存在と不在)を印刷する方法です。
ありがとうございます。
ベストアンサー1
次のように書いてみてください。
if [[ -f /directory/test1 || -f /directory/test2 ]]; then
echo exists
else
echo 'does not exist'
fi
また、あなたがする必要があります出力を解析しません。find
あなたも同じ理由で解析しないでくださいls