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

学习笔记-5.2 shell编程1

[复制链接]

尚未签到

发表于 2018-8-26 12:12:46 | 显示全部楼层 |阅读模式
  shell编程
  编译器 解释器
  编程语言: 机器语言 汇编语言 高级语言
  静态语言:编译型语言
  强类型(变量)
  事先转换成可执行格式
  C C++ JAVA C#
  动态语言:解释型语言
  弱类型
  边解释边执行
  PHP SHELL Python perl
  bash:(解释器本身是静态语言开发的)
  面向对象 JAVA Python perl C++
  面向过程 shell C
  变量类型:事先定义数据的存储格式和长度
  字符
  数值
  整型
  浮点型:11.23 1.123*10^1
  布尔型
  逻辑: 1 + 1 > 2
  逻辑运算:与 或 非 异或(相同为0)
  1:真
  0:假
  整型:8bit:256
  16bit:
  32bit:
  64bit
  变量:内存空间 命名
  内存:编址的存储单元
  进程:
  1+100
  编程能力:
  脚本编程
  shell:弱类型编程语言
  强:变量在使用前,必须事先声明,甚至还需初始化:
  NULL:
  弱: 变量用时声明:甚至不区别类型
  变量赋值:VAR_NAME = VALUE
  bash变量类型:
  环境变量
  本地变量(局部变量)
  位置变量
  特殊变量
  本地变量:
  (set 省略)VARNAME = VALUE:作用域为整个bash进程
  局部变量:
  local VALUENAME = VALUE,作用域为当前代码段
  环境变量:作用域为当前shell进程及其子进程
  export VARNAME = VALUE
  VARNAME = VALUE
  export VARNAME
  “导出”
  位置变量:
  $1,$2,...
  特殊变量:
  $?:上一个命令的执行状态返回值
  程序执行,可能有两类返回值:
  程序执行结果
  程序状态返回代码(0-255)
  0:正确
  1-255:错误执行,系统预留:1,2,127
  每执行一个命令,后面紧跟一个执行echo $? ,状态返回代码
  输出重定向:
  > >> 2> 2>> &>
  /dev/null 软件设备,bit bucket,数据黑洞
  撤掉变量
  unset VARNAME 撤销变量
  查看当前shell中的变量:
  set
  包括环境变量和本地变量
  查看当前shell中的环境变量
  printenv
  env
  export
  # ANIMALS = pig
  # ANIMALS = $ANIMALS:goat
  # A = 2
  # B = 2
  # C = $A + $B
  # echo $C
  2+3
  脚本:命令的堆砌,按实际需要,结合命令流程控制机制实现的源程序
  1 nano fist.sh #!(shebang指定程序的魔数)
  #!/bin/bash(第一行)
  #注释行,
  cat /etc/fstab
  ls /var
  bash first.sh 不用给执行权限(好像也没指定路径)
  脚本在执行时会启动一个子shell进程(pstree)
  命令行中启动的脚本会继承当前shell环境变量
  系统自动执行的脚本(非命令行启动)就需要自我定义需要各环境变量
  bash:
  引用变量: $(VARNAME),括号有时可省略
  双引号弱引用,其内的字符串做变量替换
  单引号强引用,其内的字符串不做变量替换
  练习:写一个脚本,完成以下任务
  1 添加5个用户,user1,...,user5
  2 每个用户的密码同用户名,而且要求,添加密码完成后不显示passwd
  命令的执行结果信息
  3 每个用户添加完成后,都要显示用户某某已经成功添加
  练习:写一个脚本,完成以下任务
  1 使用一个变量保存一个用户名:
  2 删除此变量中的用户,且一并删除其家目录
  3 显示"用户删除完成"类的信息


运维网声明 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-556820-1-1.html 上篇帖子: linux shell编程基础必掌握 下篇帖子: Shell脚本自动输入EOF error :end-of-file
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

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

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

扫描微信二维码查看详情

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


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


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


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



合作伙伴: 青云cloud

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