【发布时间】:2012-08-15 08:23:39
【问题描述】:
我对 bash 脚本还很陌生,所以这可能是一个愚蠢的语法错误,但为什么这段代码不起作用?
for x in $(ls)
do
if [ -d $x ]
then
echo $x
fi
done
单独的 for 和 if 部分可以自己正常工作,但这不会产生任何输出。
【问题讨论】:
-
正如@geirha 所说,您不应该使用
$(ls)来驱动您的循环。for x in *是你想要的。 -
"ls" 在适当的情况下很好;) "*" 与
ls -1等效(并且“效率更高”,因为它产生的子shell 更少)。
标签: bash for-loop if-statement