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

NO3.Shell脚本学习——编写Shell脚本

[复制链接]

尚未签到

发表于 2018-8-20 07:58:54 | 显示全部楼层 |阅读模式
  Shell脚本


  • 用途:完成特定的、较复杂的系统管理任务。
  • 格式:集中保存多条Linux命令,普通文本文件
  • 执行方式:按照预设的顺序依次执行的命令
  执行Shell脚本的方式:
  1.bash test.sh
  //不需要写解析器
  //不需要给脚本设置执行权限


  • ./test.sh  //需要写解析器——脚本首行
      #!/bin/bash
      //需要给脚本设置执行权限
      chmod a+x test.sh

  写个Shell的小例子
  test.sh:
  

#!/bin/bash  
echo '23123123'
  
echo 'disk space:'
  
echo
  
df -Th
  
echo
  
echo 'free space:'
  
free -m
  

  小例子:每周五17:30 清理FTP服务器的公共共享目录
  检查/var/ftp/pub/ 目录,将其中所有子目录及文件的详细列表、当时的时间信息追加保存到/var/log/pubdir.log日志文件中,然后清空该目录
  示例:
  

vi /opt/ftpclean.sh  `#!/bin/bash
  date >> /var/log/pubdir.log
  ls -lhR /var/ftp/pub >> /var/log/pubdir.lg
  rm -rf /var/ftp/pub/*
  

  crontab -e
  30 17 * * 5  /opt/ftpclean.sh`
  

  Shell变量种类


  • 用户自定义变量   name="user1"  引用:${name}
  • 预定义变量
  • 位置变量**
  输入赋值:read  [-p "信息"] 变量名
  双引号:能解析变量
  单引号:不能解析变量
  反引号:解析命令并输出
  删除变量:unset 变量名
  位置变量(传参):
  

test.sh  
#!/bin/bash
  
#test.sh
  
echo $1
  
echo $2
  
echo $3
  
echo $4
  
echo $5
  
echo $6
  
echo $7
  
echo $8
  

  调用:sh test.sh 1 2 3 4 5 6 7 ...(最多识别9个)
  执行结果:
  1
  2
  3
  4
  5
  6
  7
  ...
  预定义变量:
  $#:命令行中位置参数的个数
  $*:所有参数的内容
  $?:上一条命令执行后返回的状态,当返回状态值为0时表示执行正常,非0表示执行异常或出错
  $0:当前执行的进程/程序名
  shell计算
  $(($1+$2)) (不需要转义)           or        expr 2 + 3 +4 (需要转义)
  expr 4 * 2
  expr 4 / 2
  expr 4 % 2
  and so on...
  shell输入、输出
  输入
  ``
  echo -n||e
  -n
  -e可以解析转义字符
  //设置字体颜色
  echo -e "httped process \033[32;40m[OK]\033[0m"
  \033[前景颜色;背景颜色m
  \033[0m恢复到系统默认的颜色
  前景颜色:30-37
  背景颜色:40-47
  **输出**
  cat、head(首n行)、tail(尾n行)、tee(输出一份并保存一份)、nl(加行号)
  ``



运维网声明 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-554033-1-1.html 上篇帖子: shell中的函数和数组 下篇帖子: shell输出圣诞树
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

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

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

扫描微信二维码查看详情

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


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


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


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



合作伙伴: 青云cloud

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