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

shell脚本编程之字符串测试及循环

[复制链接]

尚未签到

发表于 2018-8-28 13:17:02 | 显示全部楼层 |阅读模式
  ==:两个字符串是否相等
  !=:两个字符是否不等
  >:某个字符串是否大于另一个字符串
    echo”no user”
  exit
  fi
  if [ `id –n –u $1` == `id –n –u $1` ]; then
  echo”ok”
  else
  echo”not ok”
  fi
  写一个脚本
  传递一个参数给脚本,如果参数为q或Q或quit就退出脚本,否则就显示用户的参数
  #!/bin/bash
  #判断脚本是否存在
  if [ $1 = ‘q’ ]; then
  echo “exit”
  exit
  elif [ $1 = ‘Q’ ]; then
  echo”exit”
  exit
  elif [ $1 = ‘quit’ ]; then
  echo”exit”
  exit
  elif [ $1 = ‘Quit’ ]; then
  echo”exit”
  exit
  elsee
  echo $1
  fi
  练习
  传递3个参数给脚本,第一个为整数,第二个为算术运算符,第三个为,将计算结果显示出来保留2为精度,形如./calc.sh5 / 2
  提示:计算使用bc命令,在bc中使用scale可以保留精度,利用echo“scale=2;111/22;” | bc,将其保留到某个变量中,直接引用
  练习
  写一个脚本,判断当前主句的CPU生产商,其信息在/proc/cpuinfo文件中evderid一行中
  如果生产商为AuthenticAMD就显示为AMD公司,如果生产商为GenuineIntel就显示为Intel公司,否则就显示为非主流公司
  练习
  写一个脚本,给脚本传递3个整数,判读其中的最大数和最小数,并显示出来
  可以设置一个变量MAX=0,然后让MAX与$1进行比较,若大于MAX则将$1的值赋给MAX,接着让MAX与$2进行比较,一次类推
  练习
  传递3个参数给脚本参数均为用户名,将这些用户的账号信心提取出来放置于/tmp/testusers.txt文件中,并要求每一行行首有行号
  循环:指定进入条件退出条件
  for循环
  for 变量in 列表(变量中的数遍历了列表中的数则退出)
  do
  循环体
  done
  seq :[起始数步进数] 结束数,这是个命令,要通过``引用命令结果
  变量在开始的时候都是默认为字符串的
  declare –I SUM=0:定义为整型
  -x:定义为环境变量
  #!/bin/bash
  declare –i SUM=0
  for I in (1..100)
  do
  let SUM=$[$SUM+$I];
  done
  echo”the sum is :$SUM”
  练习
  向系统中每个用户问好,即遍历每个用户
  使用wc–l /etc/passwd
  LINES=`wc –l /etc/passwd| cut –d’ ‘ –f1`
  for I in `seq 1 $LINES`
  do
  echo “hell `head–n $I /etc/passwd | tail -1 | cut –d: -f1`”
  done
  写一个脚本
  设定变量FIFE的值为/etc/passwd,一次想/etc/passwd中的每个用户问好并显示对方的shell,形如helloyourshell:/bin/bash,统计一共有多少个用户,并指向默认用户问好
  写一个脚本
  添加10个用户user1到user10,密码同用户名,但要求只有用户名不存在的情况下才能添加,扩展:接受一个参数add:添加用户user1…user10,del:删除用户user1…user10,其他的则退出
  添加用户
  #!/bin/bash
  for I in (1..10); do

  if>  echo”user$I exits”
  else
  useradduser$I
  echouser$I | passwd –stdin user$I &> /dev/null
  echo“add user$I finish”
  fi
  done
  删除10个用户
  写一个脚本
  计算100以内的所有能被3整除的正整数的和(取模,取余% 3%2=1)
  写一个脚本
  计算100以内的所有的奇数的和以及所有偶数的和,分别显示之
  写一个脚本分别显示当前系统上的所有默认shell为bash的用户和默认shell为/sbin/nologin的用户,并统计各类shell下的用户总数显示结果形如
  BASH,3users,they are:
  root ,redhat,gentoo
  NOLOGIN,2 users,they are:
  bin,ftp


运维网声明 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.yunweiku.com/thread-557777-1-1.html 上篇帖子: centos安装tomcat (用shell脚本安装为服务) 下篇帖子: shell和Python调用企业微信服务号进行报警
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

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

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

扫描微信二维码查看详情

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


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


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


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



合作伙伴: 青云cloud

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