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

shell脚本相关指令

[复制链接]

尚未签到

发表于 2018-8-29 12:04:32 | 显示全部楼层 |阅读模式
  1.bash和source的区别:bash(包括通过路径执行脚本)是non-login状态下,创建子shell进程,执行的shell脚本,因此其间创建的任何变量都将在程序执行完毕后,销毁,即父进程(原来的shell)是无法访问这些变量的;source则直接在当前shell环境下执行该shell脚本,因此脚本申请的变量可以被访问。
  2.test -e filename:关于某个档名的文件类型的判断,参数:
  1)-e:是否存在
  2)-f:是否存在且为文本档案
  3)-d:是否存在且为目录
  4)-b:是否存在且为block device
  5)-c:是否存在且为character device
  6)-S:是否存在且为Socket档案
  7)-p:是否存在且为FIFO(pipe)档案
  8)-L:是否存在且为一个链接档
  test -r filename:关于档案权限的侦测,参数
  1)-r:是否存在且有可读权限
  2)-w:是否存在且有可写权限
  3)-x:是否存在且有可执行权限
  4)-u:是否存在且有SUID权限
  5)-g:是否存在且有SGID权限
  6)-k:是否存在且有Sticky bit权限
  7)-s是否存在且为非空白文档
  test file1 -nt file2:两个档案之间的比较
  1)-nt:file1是否比file2文件新
  2)-ot:file1是否比file2文件旧
  3)-ef:file1与file2是否为同一个档案,可用在判断hard link的判定上,主要意义在判定,两个档案是否均指向同一个inode。
  test n1 -eq n2:两个整数之间的判断
  1)-eq:两数相等
  2)-ne:两数值不等
  3)gt:n1大于n2
  4)lt:n1小于n2
  5)ge:n1大于等于n2
  6)le:n1小于等于n2
  判定字符串数据
  1)test -z string:判定字符串是否为空,空,则为true
  2)test -n string:判定字符串是否非空,非空为true
  3)test str1=str2:判断str1是否等于str2,相等则为true
  4)test str1!=str2:判断str1是否不等于str2,不等则true
  多重条件判定,test -r filename -a -x filename
  1)-a:and,两个同时成立返回true
  2)-o:or,任何一同成立
  3)!:取反,即不成立返回true
  3.在脚本当中可以用[]来实现test的功能,不过需要注意,[]中的的内部两端必须有空格,另外:
  1)在中括号内的每个组件都需要空格来分割
  2)在中括号内的变量,最好以双引号括起来
  3)在中括号内的常量最好以单或双引号括起来
  中括号常用于条件判断语句中
  4.shell脚本中的一些特殊变量
  1)$#:代表后接的参数的个数
  2)$@:代表"$1 $2 $3 $4"
  3)$*:代表"$1c$2c$3c$4",其中c为分隔符
  4)$n:代表第n个参数
  5.shift n:参数变量偏移,即拿掉前面的几个参数,然后对应的参数也做相应的变化。
  6.条件判断:
  if[ 条件判断1 ]&&[ 条件判断2 ];then
  操作指令
  elseif[ 条件判断1 ]||[ 条件判断2 ];then
  操作指令
  elseif[ 条件判断1 -o 条件判断2 ];then
  操作指令
  elseif[ 条件判断1 -a 条件判断2 ];then
  操作指令
  else
  操作指令
  fi
  7.常用端口:
  1)80:www
  2)22:ssh
  3)21:ftp
  4)25:mail
  5)111:RPC(远程过程调用)
  6)631:CUPS(打印服务功能)
  8.case语句:
  case $param in
  "选项1")
  操作指令
  ;;
  "选项2")
  操作指令
  ;;
  *)           #默认选项
  操作指令
  ;;
  esac
  9.函数:function,
  function fname(){
  程序片段
  }
  10.循环:
  1)while do done:当condition成立时,进入循环,直到条件不成立,终止循环
  while [ condition ]
  do
  程序片段
  done
  2)until do done:当condition条件成立时,就终止循环,否则就持续进行循环
  until [ condition ]
  do
  程序片段
  done
  3)for...do...done:
  for var in con1 con2 con3...
  do
  程序片段
  done
  该循环会将con1,con2...依此赋给var,然后执行程序片段
  for((初始值;限制值;执行步阶))
  do
  程序片段
  done
  11.seq n1 n2:生成n1到n2之间的连续数字
  12.sh [-nvx] script.sh:执行脚本,参数,
  1)-n:不要执行script,仅查询语法问题
  2)-v:在执行script前,先将script的内容输出到屏幕上
  3)-x:将使用到的script内容显示到屏幕上


运维网声明 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-558154-1-1.html 上篇帖子: awk中使用shell的环境变量方法 下篇帖子: shell脚本几个常见问题
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

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

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

扫描微信二维码查看详情

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


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


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


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



合作伙伴: 青云cloud

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