仅当目录使用shell脚本时才删除目录

Ast*_*mit 5 shell

我有一个shell(ksh)脚本.我想确定某个目录是否存在/tmp,如果存在,那么我必须将其删除.我的脚本是:

测试

#!/usr/bin/ksh
# what should I write here?
if [[ -f /tmp/dir.lock ]]; then
    echo "Removing Lock"
    rm -rf /tmp/dir.lock
fi
Run Code Online (Sandbox Code Playgroud)

我该怎么办?我没有得到想要的结果:当我执行脚本并且我没有Removing Lock在屏幕上输出时,目录没有被删除.

我手动检查并且锁定文件存在于该位置.锁定文件set MUTEX_LOCK "/tmp/dir.lock"由TCL程序创建.

Jen*_*ens 17

除了-f-d注意,[[ ]]不是POSIX,而[ ]为.您多次使用的任何字符串或路径都应该在变量中以避免输入错误,尤其是当您使用rm -rf具有极端偏见的删除时.最便携的解决方案是

DIR=/tmp/dir.lock
if [ -d "$DIR" ]; then
    printf '%s\n' "Removing Lock ($DIR)"
    rm -rf "$DIR"
fi
Run Code Online (Sandbox Code Playgroud)