shell脚本初学(练习题)(一)

该题目在window10下,重做https://blog.51cto.com/szk5043/1892069的30道shell脚本,如有侵权,请私我。同时分享菜鸟的成长,也希望其他人一起进步,共勉!

一、先测试某一文件是否为目录,并通过“$?”变量查看返回状态值,据此判断测试结果。

#i/bin/bash
f="/f/zfs/data/shell_data"
if [ -d $f ]
then
        echo "文件夹"
fi

<< COMMENT
注释:利用 $?
COMMENT
[ -d $f ]
if [ $? == 0 ]
then
        echo "文件夹"
else
        echo "不是文件夹"
fi


输出:
文件夹
文件夹

其中:echo $? 就是返回上一条语句的执行结果,如果cp成功的话 返回的是0。如果失败的话返回的是大与0的数(根据出错的情况而定)。

二、测试这级目录及其父目录是否存在、是否还是目录。

#!/bin/bash
<< COMMIT
判断父目录是否存在
COMMIT
dirname="/f/zfs/data/shell_data"
# 利用&&进行与操作,注意有俩中括号
<< COMMIT
if [[ -d $dirname && -d $(dirname "$PWD") ]]
then
	echo "存在"
fi
COMMIT
# 利用-a进行与运算(-o是或运算)
# 判断是否存在
if [ -e $dirname -a -d $(dirname "PWD") ]
then
	echo "存在"
	if [ -d $dirname -a -d $(dirname "$PWD") ]
	then
		echo "俩都存在目录"
	fi
else
	echo "不存在或不是目录"
fi

三、 使用普通用户teacher登录,并测试是否对“/f/zfs/data/shell_data”文件有读、写权限,如果是则显示“YES”。

#i/bin/bash
dir_name="/f/zfs/data/shell_data/hello.sh"
if [ -w $dir_name ]    #注意变量的引用
then
        echo "$dir可以写"
else
        echo "$dir不可以写"
fi

if [ -f $dir_name ]
then
        echo "文件"
        if [ -r $dir_name ]
        then
                echo "$dir可以读"
        else
                echo "$dir不可以读"
        fi
else
        echo "文件夹"
fi
或者
[ -r /etc/passwd ] && echo "yes"

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值