尝试创建一个if
语句来检查文件是否是有效的符号链接(意味着它也存在)。
我试过:
[ -h "$1" -a ! -e "$1" ]
...但这不起作用。如果文件不是有效的符号链接,或者根本不存在,我想执行代码。
答案1
如果中的名称$1
是有效的符号链接,则-e
测试为真。如果它是损坏的符号链接,则-e
测试将失败。如果 in 中的名称$1
根本不存在,则测试也会失败。
因此,要测试$1
符号链接是否损坏,或者如果它根本不存在,那么使用就足够了
if [ ! -e "$1" ]; then ...; fi
你的测试最好是在没有已弃用 -a
作为
if [ ! -e "$1" ] && [ -h "$1" ]; then ...; fi
这测试$1
现有的符号链接是否已损坏。
您想测试有效的符号链接吗,请使用
if [ -e "$1" ] && [ -h "$1" ]; then ...; fi