linux shell 判断目录不存在,检查shell脚本中是否存在目录

要检查shell脚本中是否存在目录,可以使用以下命令:if [ -d "$DIRECTORY" ]; then

# Control will enter here if $DIRECTORY exists.fi

或者检查目录是否不存在:if [ ! -d "$DIRECTORY" ]; then

# Control will enter here if $DIRECTORY doesn't exist.fi

然而,作为乔恩·埃里克森指出,如果不考虑到指向目录的符号链接也将通过此检查,则后续命令可能无法正常工作。例如,运行该程序:ln -s "$ACTUAL_DIR" "$SYMLINK"if [ -d "$SYMLINK" ]; then

rmdir "$SYMLINK" fi

将产生错误消息:rmdir: failed to remove `symlink': Not a directory

因此,如果后续命令需要目录,则必须对符号链接进行不同的处理:if [ -d "$LINK_OR_DIR" ]; then

if [ -L "$LINK_OR_DIR" ]; then

# It is a symlink!

# Symbolic link specific commands go here.

rm "$LINK_OR_DIR"

else

# It's a directory!

# Directory command goes here.

rmdir "$LINK_OR_DIR"

fifi

请特别注意用于包装变量的双引号,其原因由8 jean解释。另一个答案.

如果变量包含空格或其他不寻常的字符,可能会导致脚本失败。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值