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

linux笔记 3-11 3-12 shell脚本

[复制链接]

尚未签到

发表于 2018-8-27 08:13:06 | 显示全部楼层 |阅读模式
  ## 1.创建新shell脚本##
  1. 创建包含bash命令的文本文件。文件的第一行应为:
  #!/bin/bash
  2. 使文件可执行(使用chmod +x scripts)
  3.脚本调试模式:
  #!/bin/bash -x
  # bash -x scripts
  
  ## 2.引用和转义 ##
  弱引用
  将字符串放置在双引号中,保留字符串中所有字符的文字值,$、`、\和!字符除外。换言之,变量扩展和命令扩展在双引号内仍起作用。
  例:
DSC0000.png

  
  强引用将字符串放置在单引号中,保留字符串中所有字符的文字值,同时禁用所有扩展:
  例:
   DSC0001.png
  转义
  非引用的\是转义字符。它保留了下一个字符的文字值。(例如,\$PATH是确切的字符串$PATH,而不是PATH变量的内容。)
  例:
   DSC0002.png
  ## 3.数值运算 ##
  
  1.$[]
  例:
  
DSC0003.png

  2.Expr
  例:
   DSC0004.png
  3.(())
  例:
   DSC0005.png
  4.Let
  例:
   DSC0006.png
  ## 4.循环for do done ##
   DSC0007.png
  ## 5.位置参数 ##
  参数总数:$#
  位置参数自身:$0、$1、$2、$3....
  所有位置参数: $@、$*
  例:
   DSC0008.png
  ##6.test条件判断##
  语法:test EXPRESSION 或 [EXPRESSION]
  非零或零长度字符串运算符:test -{n|z} STRING
  如果表达式为true,返回零退出状态,如果表达式为false,则返回非零退出状态
  
  ## 字符比较运算符 ##
  = , !=
  例:
DSC0009.png

  ## 数字比较运算符 ##
  
  -eq等于
  -ne不等于
  -lt小于
  -le小于或等于
  -gt大于
  -ge大于或等于
  例:
DSC00010.png

  
  ## 文件状态运算符 ##
  
  语法:test -{b|c|e|f|d|r|w|x|s|L} FILE/DIRECTORY,
  或[ -{b|c|e|f|d|r|w|x|s|L} FILE/DIRECTORY ]
  
  -b块文件
  -c字符文件
  -e文件存在
  -f普通文件
  -d目录
  -r文件可读
  -L软链接
  例:
DSC00011.png

  ## 逻辑运算符 ##
  -o
  -a
  
  &&为真时执行
  ||为假时执行
  
  例:
DSC00012.png

  ## 7.if语句 ##
DSC00013.png

  ## 8.expect语句 ##
  
  #!/usr/bin/expect
  这一行告诉操作系统脚本里的代码使用那一个shell来执行。
  set timeout 10
  设置后面所有的expect命令的等待响应的超时时间,单位为秒。
  spawn talk
  pawn是expect的内部命令,作用是给后面的shell指令加个壳,用来传递交互指令。
  expect "who"
  判断上次输出结果里是否包含“who”的字符串,如果有则立即返回,否则等待超时时间后返回。
  send "westos\n"
  执行交互动作,相当于手工输入"westos"。
  expect eof
  作用是在输出中搜索文件结束符,如果没有这一行,脚本会立即退出,得不到正确结果。
  interact
  执行完成后保持交互状态,把控制权交给控制台,这个时候就可以手工操作了。否则退出登录。
  $argv 参数数组
  xpect脚本可以接受从bash传递过来的参数.可以使用[lindex $argv n]获得,n从0开始,分别表示第
  一个,第二个,第三个....参数。
  
  
  ## 9.别名 ##
  alias命令可以用来自定义属于自己的系统命令,写入~/.bashrc 文件永久生效
  查看别名 alias
  设置别名 alias kan=‘cat’
DSC00014.png

  删除别名
  unalias kan
  
  脚本练习:
  扫描当前局域网主机,如果可以ping通的话。就登录进去创建userfile里的
  用户并且对应passwdfile里的密码。如果这个用户存在了,不要更改人家的密码。
  Scan脚本:
DSC00015.png

  Scp脚本:
DSC00016.png

  Ssh脚本:
DSC00017.png

  创建用户脚本:
DSC00018.png

  测试结果:
DSC00019.png



运维网声明 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.iyunv.com/thread-557028-1-1.html 上篇帖子: shell-进程状态变量 下篇帖子: apache,squid,shell脚本
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

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

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

扫描微信二维码查看详情

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


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


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


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



合作伙伴: 青云cloud

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