尝试创建一个脚本,将命令行参数作为路径名,然后测试它是否是工作目录。然后我希望在目录上运行命令(测试),例如子目录中有多少文件等。
我无法想到用它来测试它的逻辑。您如何确定参数是否是目录?
这就是我试过的
if [ -d "$1" ]
then
echo "It works"
fi
我没有得到"它有效"当我试试这个。所以我把它切换到-a用于文件,因为它更容易测试。而且,我没有得到回声输出。
答案 0 :(得分:1)
使用test
命令的-d
选项。
if [ -d "$1" ]
then ...
fi
答案 1 :(得分:0)
标题提到了一个循环,但以前的评论似乎都没有提到。您可以尝试一个简单的脚本,如:
#!/bin/sh
for arg; do
if test -d "$arg";
echo "$arg is a directory"
else
echo "$arg is not a directory"
fi
done
对于多样性,您可以将其重写为:
#!/bin/sh
for arg; do
not=$(test -d "$arg" || echo "NOT ")
echo "$arg is ${not}a directory"
done