2016-05-27 20 views
0

ユーザーがディレクトリを選択できるシェルスクリプトにプロンプ​​トが表示されます。私はそのディレクトリに.gzファイルが存在すればループを終了し、そうでなければ再びディレクトリを選択するように求められますが、それは動作していないようにしています。ここで私がこれまで持っているものです。ディレクトリに.gzファイルが存在するかどうかを確認する必要があります。

ls -d */ 
while : 
do 
echo "Which Directory do you want to access?" 
read input_variable1 
cd $input_variable1 
if [ CHECK FOR .gz ] 
then 
break 
else 
ls -d */ 
echo "no .gz files to unzip. Try again." 
fi 
done 
+0

これはdupではありません! –

答えて

1

テストは、そうでない場合は*.gz(偽のマッチングつのファイルがある場合は、その[ -f *.gz ]はtrueになりますワイルドカードを使用してサポートしています - @tripleeeが指摘したように、これは複数の一致で失敗します。参照下記より良い変形例)。

もう1つの可能性はif ls *.gz &>/dev/null; then ...; else ...; fiです(エラーは発生しません)。

+0

ありがとう!多くの助けがありました – Matt

+0

しかし、一致するファイルが複数ある場合、構文エラーで失敗します。 – tripleee

+0

@tripleee True、私は失敗しないバージョンを含めるように応答を更新しました。 – GuiltyDolphin

関連する問題