设为首页 收藏本站
查看: 2052|回复: 0

shell 修改文件权限变量

[复制链接]
累计签到:1 天
连续签到:1 天
发表于 2015-10-8 08:27:04 | 显示全部楼层 |阅读模式
测试:
test   -d    file   #测试是否为目录
test    -f  file
test    -x   file
test    -r   file
test    -w  file
test    -e  file   测试文件是否存在
test    -s   file   测试大小是为空。是否为空文件
说明:
test    -x   file  简写成: [ -x file ]


=====流程控制===
if 语句


语法:
if 条件  
then
语句
fi
扩展 ; 分号,表示两个两个命令写在一行。互不影响。
例:
[iyunv@xuegod63 test]# ls /optt ; ls
ls: cannot access /optt: No such file or directory
example01.sh  expr.sh  read.sh  z1.sh  z.sh
[iyunv@xuegod63 test]# ls /optt  && ls
ls: cannot access /optt: No such file or directory


if 例1:

cat if.sh
#!/bin/bash
echo "if test"
if [ -x /bin/ls ] ; then
     /bin/ls
fi
echo "========================="
if [ -x /bin/ls ]
then
     /bin/ls
fi

运行结果:
[iyunv@xuegod63 test]# ./if.sh
if test
example01.sh  expr.sh  if.sh  read.sh  z1.sh  z.sh
=========================
example01.sh  expr.sh  if.sh  read.sh  z1.sh  z.sh


if /else 用法:


语法:
if  条件1  ; then
命令1
else
     命令2:
fi

例:
[iyunv@xuegod63 test]# cat else.sh
#!/bin/bash

if [ -x /etc/passwd ] ; then
        /bin/ls
else
        pwd
fi
执行结果:
[iyunv@xuegod63 test]# chmod +x else.sh
[iyunv@xuegod63 test]# ./else.sh
/root/test

多个条件的联合
-a 或 &&  : 逻辑与,仅当两个条件都成立时,结果为真
-o 或 || : 逻辑或 。 两个条件有一个成立 ,结果为真

更复杂的if语句:
语法:
if  条件1  ; then
命令1
elif  条件2  ; then
     命令2:
elif  条件3  ; then
     命令3
else
     命令4
fi

综合实例: 测试文件类型
[iyunv@xuegod63 test]# cat elif.sh
#!/bin/bash

echo "input a file name:"
read file_name

if [ -d $file_name ] ; then
        echo " $file_name is a dir"
elif [ -f $file_name ] ; then
        echo " $file_name is file"
elif [ -c $file_name -o -b $file_name ] ; then
        echo " $file_name is a device file"
else
        echo " $file_name does not exist "
fi



文件测试运算符列表操作符说明举例
-b file
检测文件是否是块设备文件,如果是,则返回 true。
[ -b $file ] 返回 false。

-c file
检测文件是否是字符设备文件,如果是,则返回 true。
[ -b $file ] 返回 false。

-d file
检测文件是否是目录,如果是,则返回 true。
[ -d $file ] 返回 false。

-f file
检测文件是否是普通文件(既不是目录,也不是设备文件),如果是,则返回 true。
[ -f $file ] 返回 true。

-g file
检测文件是否设置了 SGID 位,如果是,则返回 true。
[ -g $file ] 返回 false。

-k file
检测文件是否设置了粘着位(Sticky Bit),如果是,则返回 true。
[ -k $file ] 返回 false。

-p file
检测文件是否是具名管道,如果是,则返回 true。
[ -p $file ] 返回 false。

-u file
检测文件是否设置了 SUID 位,如果是,则返回 true。
[ -u $file ] 返回 false。

-r file
检测文件是否可读,如果是,则返回 true。
[ -r $file ] 返回 true。

-w file
检测文件是否可写,如果是,则返回 true。
[ -w $file ] 返回 true。

-x file
检测文件是否可执行,如果是,则返回 true。
[ -x $file ] 返回 true。

-s file
检测文件是否为空(文件大小是否大于0),不为空返回 true。
[ -s $file ] 返回 true。

-e file
检测文件(包括目录)是否存在,如果是,则返回 true。
[ -e $file ] 返回 true。



运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-124081-1-1.html 上篇帖子: 用shell脚本编写ssh直接修改目标服务器的密码以及ssh的应用 下篇帖子: 【WINDOWS】hyper-v下自动创建VM_powershell脚本实现_powershell简介
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表