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

SHELL-命令解释程序

[复制链接]

尚未签到

发表于 2018-8-27 08:01:26 | 显示全部楼层 |阅读模式

  •   理解shell的作用及分类
  •   设置和使用shell变量
  •   编写简单的shell脚本
  •   熟悉条件测试的应用
  •   使用if条件语句
  •   使用for.while循环语句
  •   使用case分支语句
  •   了解其它控制语句及函数
  cat /etc/shells
  cat /etc/passwd
  /bin/sh
  定义新的变量
  变量名要以英文字母或下划线开头,区分大小写
  格式:变量名=变量值
  查看变量的值
  格式:echo $变量名
  DAY=Monday
  echo $DAY
  Monday
  从键盘输入内容为变量赋值
  格式:read 【-p "信息”】 变量名
  双引号“” 允许通过$符号引用其他变量值
  单引号 ''   禁止引用其他变量值,$视为变通字符
  反撇号 ``  将命令执行的结果输出给变量
  设置变量的作用范围
  格式: export 变量名...
  export 变名=变量值【变量名n=变量值】
  清除用户定义的变量
  格式: unset 变量名
  SRV=srv.xapc.com.cn
  echo $SVR
  export SRV
  环境变量配置文件
  全局配置文件 /etc/profile
  用户配置文件 ~/.bash_profile
  查看环境变量  set
  常见的环境变量:
  $USER $LOGNAME
  $UID $SHELL $HOME
  $PWD $PATH
  $PS1 PS2
  echo $PATH
  PATH="/opt/bin:$PATH"
  echo $PATH
  位置变量
  表示为$n,n为1-9之间的数字。
  ./test1 one two
  预定义变量表示形式如下
  $#:命令行中位置参数的个数
  $*:所有位置参数的内容
  $?:上一条命令执行后返回的状态,当返回状态值时表示执行正常,非0值表示执行异常或出错。
  $$:当前所在进程的进程号
  $!:后台运行的最后一个进程号
  $0:当前执行的进程/程序名
  编写可执行shell脚本
  运行环境设置:#!/bin/bash
  注释信息
  命令
  运行shell脚本三种方式
  直接执行具有X权限
  例如:./boot.sh
  使用指定的解释器程序执行脚本内容
  例如:bash boot.sh  、sh boot.sh
  通过source命令(或.)读取脚本内容执行
  例如:source boot.sh 或.boot.sh
  条件测试
  格式1:test 条件表达式
  格式2:【条件表达式】常
  [操作符 文件或目录】
  -d:是否目录
  -e:是否存在
  -f:是否为文件
  -r:当前用户是否有读权限
  -w:当前用户是否有写权限
  -x:当前用户是否有执行权限
  -L:是否是Link文件
  整数比较
  格式【整数1 操作符 整数2】
  -eq:= equal
  -ne:bu = not equal
  -gt:> Greater than
  -lt:< lesser than
  -le:= greater or equal
  字符串比较
  格式【字符串1 = 字符串2】相同
  【字符串1 != 字符串2】不同
  【-z 字符串】为空
  【LANG !=“en.US"] && echo $LANG
  zh_CN.UTF-8
  逻辑测试
  格式:【表达式1】操作符【表达式2】。。
  常用的测试操作符
  -a或&&:逻辑与,“而且”的意思
  前后两个表达式都成立时
  -o或||:逻辑或,‘或者’
  前后两个表达式只要一个成立
  !:逻辑否
  当指定的条件不成立时,返回结果为真
  分支判断
  if then eles fi
  if 条件测试命令1;then
  命令序列1
  elif 条件测试命令2;then
  命令序列2
  elif
  else
  命令序列n
  fi
  #!/bin/bash
  for TM in "M" "N" "E"
  do
  echo "Then $TM of the day."
  done
  #!/bin/bash
  DIR="/opt"
  LMT=100
  ValidUsers=`grep "/bin/bash" /etc/passwd|cut -d ":" -f 1`
  for Username in $ValidUsers
  do
  Num=`find $DIR -user $UserName|wc -l`
  if[$Num -gt $LMT];then
  echo "$UserName have $Num files."
  fi
  done
  批量添加20个帐号
  #!/bin/bash
  i=1
  while[ $i -le 20 ]
  do
  useradd user$i
  echo "123456" |passwd --stdin user$i &> /dev/null
  i=`expr$i+1`
  done
  批量删除20个帐号
  #!/bin/bash
  i=1
  while[ $i -le 20 ]
  do
  userdel -r user$i
  i=`expr $i + 1`
  done
  case 根据变量的不同取值,分别执行不同的命令操作
  case 变量值 in
  #!/bin/bash
  case $1 in
  start)
  echo "Start MYSQL service"
  ;;
  stop)
  echo "Stop MYSQL service"
  ;;
  *)
  echo "Usage: $0 start|stop"
  ;;
  esac
  until执行重复操作
  shift用于迁移位置变量,将$1~$9座次向左传递
  例如,若当前脚本程序获得的位置变量如下:
  #!/bin/bash
  Result=0
  while [ $# -gt 0 ]
  do
  Result=`expr $Result + $1`
  shift
  done
  echo "The sum is : $Result"
  break
  continue
  函数应用
  #!/bin/bash
  adder(){
  echo `expr $1 + $2`
  }
  adder 12 23
  adder 223 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-557015-1-1.html 上篇帖子: shell 正则表达三剑客--awk 下篇帖子: shell 脚本远程复制文件
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

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

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

扫描微信二维码查看详情

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


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


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


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



合作伙伴: 青云cloud

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