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