shell之if语句判断文件夹是否存在,用户是否存在


关于shell的使用方法 可以参考博客:https://blog.csdn.net/cuichongxin/article/details/101756440

说明

使用if语句判断前 需要先说明一下 参数定义规则:

  • -e 判断对象是否存在

  • -d 判断对象是否存在,并且为目录

  • -f 判断对象是否存在,并且为常规文件

  • -L 判断对象是否存在,并且为符号链接

  • -h 判断对象是否存在,并且为软链接

  • -s 判断对象是否存在,并且长度不为0

  • -r 判断对象是否存在,并且可读

  • -w 判断对象是否存在,并且可写

  • -x 判断对象是否存在,并且可执行

  • -O 判断对象是否存在,并且属于当前用户

  • -G 判断对象是否存在,并且属于当前用户组

  • -nt 判断file1是否比file2新 [ “/data/file1” -nt “/data/file2” ]

  • -ot 判断file1是否比file2旧 [ “/data/file1” -ot “/data/file2” ]

  • 再次提一下&&and||在if中多次判断:

    • || 单方成立;
    • && 双方都成立表达式。

if判断的几个实例

判断文件是否存在

方法一

注:经过实测 个别版本如果单独用 -f 判断是否存在,运行会有异常,就加个 !(非) ,测试就正常了。

#!/bin/bash
#注意 定义变量不能有空格 否则报错!!!!!!
aa=/root/test/test1.sh

if [ -f "$aa" ];then

echo "$aa文件存在"

else

echo "$aa文件不存在"

fi

在这里插入图片描述

方法二

嘿嘿 其实 单独 要验证 该文件是否存在 用方法是累赘 麻烦啊 而且我都知道固定路径了 那么也没有意义了 ! 所以 我们可以把参数定义在命令行中 这样灵活性更好,而且使用find 全局搜索 这样才有意义:

if [ $# -eq 0 ] ; then
        echo "请加上需要查询的文件名"
        exit 1
fi

find / -type f -name "$1"

if [ $? -eq 0 ] ; then
        echo "$1文件所有路径如上"
        echo "为空白则代表文件不存在"
fi

在这里插入图片描述

文件夹不存在则创建

经过实测 如果单独用 -d 判断是否存在,运行会有异常,所以我加了 !(非) ,测试就正常了,代码如下:

也可以把指定路径 改为 自定义路径,方法参考上面文件的方法二
if [ ! -d "目录路径如:/root/test" ];then

mkdir /root/test

echo "这儿也可以放任意你想实现的功能代码(包括if,for,case语句等),也比如文件创建成功以后上传文件到该目录"

else

echo "文件夹已经存在"

echo "这儿也可以放任意你想实现的功能代码(包括if,for,case语句等),也比如文件创建成功以后上传文件到该目录"

fi

查询某用户是否存在


[root@control ~]$cat test.sh 
#!/bin/bash
#$#的意思是 定义个数 如果为0 则代表没有输入任何变量
if [ $# -eq 0 ] ; then
        echo "请务必要跟上一个参数"
        exit
fi
# -q 是不打印结果
grep -q $1 /etc/passwd
if [ $? -eq 0 ] ; then
        echo "$1 用户是存在的"
else
        echo "$1 用户不存在"
fi

在这里插入图片描述

  • 7
    点赞
  • 24
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

҉人间无事人

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值