shell 判断目录是否存在,不存在创建

1、cat if2.sh

#!/bin/bash
#判断目录是否存在,不存在创建
dir=/media/cdrom
if [ ! -d  $dir ]
then
	mkdir -p /media/cdrom
        echo -e "\033[32m this is $dir success ! \033[0m"

else
	echo -e "\033[032m directory already exists \033[0m"
fi

2、效果

[root@a lxy]# sh if2.sh 
 this is /media/cdrom success ! 
[root@a lxy]# sh if2.sh 
 directory already exists 
  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
### 回答1: 在shell判断目录是否存在可以使用test命令或者[]符号来进行判断,具体如下: 使用test命令: ``` if test -d "/path/to/directory"; then echo "directory exists" else echo "directory does not exist" fi ``` 使用[]符号: ``` if [ -d "/path/to/directory" ]; then echo "directory exists" else echo "directory does not exist" fi ``` 其中,-d选项表示判断是否存在目录,如果存在则返回true,否则返回false。 ### 回答2: shell判断目录是否存在可以通过以下几种方式实现: 1. 使用test命令:test命令可以判断文件或目录是否存在,利用test命令来判断目录是否存在可以使用-d参数,例如: ``` if test -d "/path/to/directory"; then echo "目录存在" else echo "目录不存在" fi ``` 其中,`/path/to/directory`是要判断目录的路径。 2. 使用ls命令:ls命令可以列出指定目录的内容,如果目录不存在,ls命令会报错。可以通过判断ls命令的返回值来判断目录是否存在,例如: ``` if ls "/path/to/directory" >/dev/null 2>&1; then echo "目录存在" else echo "目录不存在" fi ``` 其中,`/path/to/directory`是要判断目录的路径。 3. 使用[ -d ]表达式:在shell中,可以通过[ -d ]表达式来判断目录是否存在,例如: ``` if [ -d "/path/to/directory" ]; then echo "目录存在" else echo "目录不存在" fi ``` 其中,`/path/to/directory`是要判断目录的路径。 以上是三种常见的方法来判断目录是否存在,可以根据具体情况选择合适的方法来进行判断。 ### 回答3: 在Shell脚本中,我们可以使用`test`或者`[ ]`命令来判断一个目录是否存在。 具体语法是: ```shell if [ -d 目录路径 ]; then echo "目录存在" else echo "目录不存在" fi ``` 其中,`-d`是`[ ]`命令的选项,用于判断给定的路径是否为目录。如果目录存在,则返回`true`;如果目录不存在或者给定的路径不是一个目录,则返回`false`。 另外,我们还可以使用反引号` ` 或者 `$()` 来执行命令,并将结果保存在变量中。结合这个特性,可以将目录是否存在判断结果保存在一个变量中,类似这样: ```shell directory="/path/to/directory" if [ -d $directory ]; then exists=true else exists=false fi ``` 上述代码中,`exists`变量表示目录是否存在,如果目录存在,则`exists`的值为`true`;如果目录不存在,则`exists`的值为`false`。可以根据`exists`变量的值来执行相应的操作。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值