需要检查目录

时间:2016-05-27 15:34:34

标签: bash shell

我的shell脚本中有一个提示,用户可以在其中选择一个目录。我试图这样做,如果该目录中存在.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

1 个答案:

答案 0 :(得分:1)

测试支持使用通配符,因此如果有一个文件匹配[ -f *.gz ],则*.gz将为true(否则为false) - 正如@tripleee所指出的,这将因多个匹配而失败;请参阅下面的更好的变种)。

另一种可能性是使用if ls *.gz &>/dev/null; then ...; else ...; fi(不会抛出任何错误)。