我做了一个简单的脚本来检查目录是否存在以及是否是链接。但它不起作用,我不知道为什么。请求帮助。
if [ -d "$test"] ; then
if [ -L "$test"] ; then
echo "1 is a symlink link"
else
echo "DIR 1 found"
fi
fi
if [ -d "$test01"] ; then
if [ -L "$test01"] ; then
echo "2 is a symlink link"
else
echo "DIR 2 found"
fi
fi
来自终端:
-rwxrwxr-x 1 zero zero 317 Feb 3 18:22 dir_check.sh
-rwxrwxr-x 1 zero zero 339 Feb 3 18:17 dir_check.sh~
drwxrwxr-x 2 zero zero 4096 Feb 3 11:15 test
lrwxrwxrwx 1 zero zero 11 Feb 3 18:18 test01 -> /home/zero/
zero@z_pc:~/Desktop/bash_pro$ ./dir_check.sh
1 is a symlink link
2 is a symlink link
第一个应该是“发现DIR 1”
答案 0 :(得分:1)
这应该可以解决问题。
if [ -d "test" ] ; then
if [ -L "test" ] ; then
echo "1 is a symlink link"
else
echo "DIR 1 found"
fi
fi
if [ -d "test01" ]; then
if [ -L "test01" ]; then
echo "2 is a symlink link"
else
echo "DIR 2 found"
fi
fi
说明:
$test
或$test01
是指名称为test
和test01
的变量的值,而不是实际的目录名称。正如评论者指出的那样,你的代码在结束]
之前错过了一个空格,这是这里的罪魁祸首,另外还有你扩展不存在的变量而不是传递字符串的事实。