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

脚本shell-wangxiang

[复制链接]

尚未签到

发表于 2018-8-19 07:42:17 | 显示全部楼层 |阅读模式
  一:基础介绍
  1优先级
  别名-->内部命令-->外部命令
  2. 脚本调试
  sh  -x  foo.sh
  sh  -e  foo.sh
  3三种定界符
  "字符串。。。。$变量名"   #双引号用于界定不连续的字符,支持变量
  '字符串。。。。$ # ?'        #单引号无法引用变量
  `command`   或者  $(command)  【命令替换】  #反撇号用于执行命令,等同于$()
  二:运算
  1 Shell整数运算
  方法1:
  expr  表达式
  方法2:
  echo  $[表达式]
  echo  $((表达式))
  自增运算
  let  A++  或者  ((A++))
  let  表达式      或者     ((表达式))
  2小数用管道交给 bc
  echo  "表达式"  |  bc
  三:变量
  1 变量基本操作 ——
  变量名=值
  echo  $变量名
  2 变量的几种类型 ——
  自定义变量
  环境变量:变量名一般全大写字母、用户登录后自动设好
  位置变量:$1、$2、$3。。。。${10}。。。
  预定义变量:
  $0表示Shell本身的文件名,$#表示变量的个数,$*将所有位置变量作为一个整体,$@
  将所有位置变量作为一个字符串,$! 表示最后运行的后台Process的PID,$? 表示返回值
  3 read -p "请输入你的名字:" name#输入的数值将赋值给变量name
  四: 条件判断与循环
  1 文件和目录的状态测试
  -e filename如果 filename存在,则为真[ -e /var/log/syslog ]
  -d filename如果 filename为目录,则为真[ -d /tmp/mydir ]
  -f filename如果 filename为常规文件,则为真[ -f /usr/bin/grep ]
  -r filename如果 filename可读,则为真[ -r /var/log/syslog ]
  -w filename如果 filename可写,则为真[ -w /var/mytmp.txt ]
  -x filename如果 filename可执行,则为真[ -x /usr/bin/grep ]
  -s filename如果文件有数据,则为真[ -s /etc、passwd ]
  #方括号和数据之间必须有空格,前面加!表示取反[ ! -x /usr/bin/grep ]
  2 整数值比较:
  num1-eq num2等于[ 3 -eq $mynum ]
  num1-ne num2不等于[ 3 -ne $mynum ]
  num1-lt num2小于[ 3 -lt $mynum ]
  num1-le num2小于或等于[ 3 -le $mynum ]
  num1-gt num2大于[ 3 -gt $mynum ]
  num1-ge num2大于或等于[ 3 -ge $mynum ]
  3 字符串比较:
  -z string如果 string长度为零,则为真[ -z "$myvar" ]
  -n string如果 string长度非零,则为真[ -n "$myvar" ]
  string1== string2如果 string1与 string2相同,则为真[ "$myvar" == "one two three" ]
  string1!= string2如果 string1与 string2不同,则为真[ "$myvar" != "one two three" ]
  &&  ||   ;
  4 函数及中断控制
  break  放弃当前的整个循环语句,---》跳到done之后
  continue  放弃当前这一次循环语句,---》返回while [ 测试条件 ]
  exit  退出当前的整个脚本
  shift  处理位置变量
  5  if选择结构 ——
  单分支:
  if  [ 条件测试 ];
  then
  命令序列....
  fi
  双分支:
  if  [ 条件测试 ]
  then
  命令序列1....
  else
  命令序列2....
  fi
  多分支:
  if  [ 条件测试1 ]
  then
  命令序列1....
  elif  [ 条件测试2 ]
  then
  命令序列2....
  else
  命令序列3....
  fi
  6  for循环结构 ——
  for  变量名  in   值1   值2  值3 ....
  do
  命令序列....
  done
  4 while循环结构 ——
  while  [ 条件测试 ]
  do
  命令序列....
  Done
  7   当条件成立的时候结束循环
  until  [ .. .. ]
  do
  cmd1 .. ..
  done
  8 类C语言风格的for循环
  for  ((i=1;i

运维网声明 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-553641-1-1.html 上篇帖子: 常用shell命令备忘 下篇帖子: Shell 一键安装 LNMPT
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

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

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

扫描微信二维码查看详情

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


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


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


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



合作伙伴: 青云cloud

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