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

DAY11 Shell脚本基础(Enginner05-1)

[复制链接]

尚未签到

发表于 2018-8-22 11:36:35 | 显示全部楼层 |阅读模式
一、简介
  它是一个可执行文件。提前设计可执行语句,用来完成特定任务
1.1 常见的脚本类型
  Bash Shell
  Python/Perl/Ruby
  JSP/PHP/ASP/CGI
  Javascript
1.2 Shell语言最大的优势
  能够完全兼容linux系统
1.3 规范Shell脚本的组成
  #!环境声明--声明使用哪个解释器 /bin/bash
  #注释文本 十行以上的脚本必须有注释
  执行代码
  ......
二、编写脚本
2.1 创建过程
2.1.1明确任务需求
  -按照自然语言拆分小步骤
  -按顺序整理好
2.1.2编写代码文件
  -每一个步骤怎么实现
  -转换成命令行保存到脚本文件
2.1.3 测试并完善
  -运行脚本,并根据结果排除错误
  -代码优化,用户友好处理
2.2 脚本练习
  -输出hello world
  -添加yum源
  -添加用户test05
  -输入一个IP地址,判断是否能ping通,输出相应提示信息
三、高级重定向输出
  1> 只接收前面命令结果的正确输出
  2> 只接收前面命令结果的错误输出
  &> 接收前面命令结果的正确的输出和错误的输出
  /dev/null 黑洞设备
四、变量
4.1 由来
  为了增加脚本的适用环境的能力,增加脚本的灵活度
4.2 定义
  以不变的名称储存变化的值
4.3 格式
  变量名=变化的值
4.4 注意事项
  -若指定的变量名存在,相当于为该变量重新赋值
  -等号两边不能有空格
  -变量名只能有数字/字母/下划线组成
  -变量名不能以数字开头,不要使用关键字和特殊字符
4.5 查看方式
  echo 变量名
  echo {变量名}:当变量和常量在一起输出的时候,要用{}把变量括起来
4.6 引用方式
  $变量名
  ${变量名}
4.7 变量分类
4.7.1 环境变量
  变量名一般为大写,用来设置用户/系统环境
  $USER:当前登陆的用户
  $PWD:当前工作目录
  $PATH:提供命令程序的搜寻路径
4.7.2 位置变量
  bash内置的,用来存储脚本执行时的提供的命令行参数
  用$n表示,n为序号,如1,2,3,4,。。。
  -位置变量在双数的时候必须用${12}的方式引用
4.7.3 预定义变量
  bash内置的,可以直接调用的特殊值,不可直接为这些变量赋值
  $#:已加载的位置变量的个数
  $*:所有位置变量的值
  $?:程序退出时的状态值,0表示正常,其他值为异常
  $0:当前所在的进程或脚本名
  $$:当前运行进程的PID号
4.7.4 自定义变量
  用户自定义的变量
五、Shell常用命令
5.1 read -p ‘Input username:' user
  按行读取键盘的输入,把输入赋值给user,-p是打印提示信息
5.2 expr 2 * 3
  计算表达式的值,表达式为2*3,值为6
5.3 $(command)
  在一串指令当中, $(command)内的指令会先被执行, 执行完的结果再回传到外部指令来处理
  $(date +%F):当前日期
5.4 command
  与$(command)的效果相同
5.5 shift [1,2,3...]
  shift命令用于对参数的移动(左移),通常用于在不知道传入参数个数的情况下依次遍历每个参数然后进行相应处理(常见于Linux中各种程序的启动脚本)。不带参数的shift相当于shift 1


运维网声明 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-555082-1-1.html 上篇帖子: Linux学习总结(六十)shell 脚本3-for while 循环 下篇帖子: 每日一shell(九)yum安装包排序去重
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

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

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

扫描微信二维码查看详情

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


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


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


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



合作伙伴: 青云cloud

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