0

人们帮助我用一个小代码对我的参数进行排序,但现在我想检查这个参数是否是一个目录。

   if [ -d "$@" ]
   then
     echo "$@" | tr ' ' '\n' | sort
   else
     echo this is not a valid map!
   fi

通常检查某些东西是否是您需要使用的目录[ -d file ] 但是这次它不起作用。

如果您有任何想法或解决方案,请免费发布!Ty阅读/帮助!

4

2 回答 2

3
for f in "$@"; do
    if [ ! -d "$f" ]; then
        echo "Not a dir: $f"
    fi
done

此代码将遍历所有参数并输出那些不是有效目录的参数。但我不确定你现在要排序什么。

于 2013-06-02T10:50:17.410 回答
0

扩展 kirelagin 的建议:

for f in "$@"; do
    if [ ! -d "$f" ]; then
        echo "Not a dir: $f" >&2
    else
        echo "$f"
    fi
done | sort

这会将所有非目录参数回显到stderr并打印上的排序目录列表stdout​​。

于 2013-06-02T11:05:13.763 回答