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

shell脚本if与read语句用法练习

[复制链接]

尚未签到

发表于 2018-8-28 07:50:45 | 显示全部楼层 |阅读模式
  #位置参数变量:
  #my_shell.sh ubuntu($1) centos($2) linux($3)
  #引用方式:$1 $2 $3
  #useradd $1
  #useradd $2
  #useradd $3
  #---------
  ##echo $1 |
  ##echo $2 |
  ##echo $3 |
  #然后执行脚本,bash lianxi hello ubuntu gundan
  #hello
  #ubuntu
  #gundan
  #作用可以真正实现校本化编程
  #练习:写一个脚本,通过命令传递三个文件路径给脚本,计算其空白行之和。
  #---------------------------------------
  ##file1=$(grep "^$" $1 |wc -l)          |
  ##file2=$(grep "^$" $2 |wc -l)          |
  ##file3=$(grep "^$" $3 |wc -l)          |
  ##sum_file=$[$file1+$file2+$file3]      |
  ##echo "total blank lines is: $sum_file"|
  #假设这个文件是/etc/passwd 与 /tmp/lals,则写完上面的编写后执行:
  #bash lianxi /etc/passwd /tmp/lals /dev.dago 既可以得出结果.
  #===============================================================================
  #特殊变量
  #$0 脚本文件路径自身
  #echo $0
  #获得:lianxi 文件本身路径
  # basename命令可以取一个文件的基名
  #比如 basename /root/lianxi
  #得:lianxi
  #$# 表示脚本参数的个数
  #echo $#
  #=======================================
  ##file1=$(grep "^$" $1 |wc -l)          |
  ##echo "total blank lines is: $sum_file"|
  ##echo $#                               |
  #的1 ===================================
  #当输入的参数少于2个是,报错退出;
  #==============================================
  # [  $# -lt 2 ] && echo "给我2个文件" && exit 1|
  #==============================================
  #练习:判断,/etc/passwd 是否为文件,如果为文件,则输出/etc/passwd is files,该路径通过命令
  传递的方式传入,当传入命令个数大于1,则报错。
  #================================================================
  ##[ $# -gt 1 ] && echo "传入的文件个数文件大于1" && exit 1       |
  ##[  -f $1 ] && echo "/etc/passwd is files                       |
  #================================================================
  #在root目录下。写一个脚本,该脚本可以一次性添加3个用户。通过传递参数的方式。进行用户添加,
  当传递的参数不符合3个的时候,报错。当传递完成后,输出那些用户被添加了,当,三名用户添加完>成后,脚本只能执行一次,之后需要将本脚本进行锁机制不能再执行将脚本权限改成属主可读可写可执
  行。(脚本只有正确后,才能进行加固]
  #===============================================
  ##[ $# -eq 3 ] || echo “给我3个用户” && exit 1  |
  ##useradd $1 && a=1                             |
  ##useradd $2 && b=1                             |
  ##useradd $3 && c=1                             |
  ##sum=$[$a+$b+$c]                               |
  ##[ $suum -eq 3] && echo "$1 $2 $3" || exit2    |
  ##chmod 700 $0 =================================
  #条件判断 (选择分支)
  #shell执行是 顺序执行的
  #选择分支:
  #  单分支的if 语句:
  # if 测试条件;
  # then
  #   代码分支
  #  fi
  #  双分支>的if语句:
  # if 测试条件;then
  #      条件为真的时候执行的分支
  #      elif测试条件:then
  #      elif测试条件:then
  #      else
  #      条件为假的时候执行的分支
  #  fi
  #示例:通>过参数传递一个用户名给脚本,此用户名如果不存在的话,则进行添加。
  例:通过参数传递一个用户名给脚本,此用户名如果不存在的话,则进行添加。
  #if  ! grep "^$1\>" /etc/passwd &> /dev/null;then
  #  useradd $1
  #  echo $1 |passwd --stdin $1 &> /dev/null
  #  echo "$1 用户存在"
  #fi
  #当给的用户不等1个的时候,报错退出
  #if [ $# -ne 1 ];then
  #echo "给我一个用户名"
  #exit 1
  #fi
  #echo "保持自己的节奏,不必盲目追赶他人,适合自己就好!"
  #练习:通过命令参数,给定两个数字。输出其中较大的值
  #if [ ! $# -eq 2 ];then |
  #echo "给我2个数"       |
  #exit 2                 |
  #fi                     |
  #if [ $1 -eq $2 ];then  |
  #echo "两数相等"        |
  #elif [ $1 -gt $2 ];then|
  #echo "$1 比较大"       |
  #else                   |
  #echo "$2 比较大"       |
  #fi                     |
  #-----------------------
  #练习:通过命令行参数。给定两个文本文件名,如果摸文件不存在,则结束脚本执行,若都存
  在时,返回每个文件的行数,并echo出去中的行数较多的文件--
  #[ $# -ne 2 ] && echo "gei wo liang ge wen jain" && exit 1 |
  #if ! [ -e $1 ];then   |------------------------------------
  #echo "$1 is not find" |
  #exit 2 ---------------|
  #elif ! [ -e $2 ];then |
  #echo "$2 is not find" |
  #exit 3 ---------------|
  #fi -------------------|--------
  #file1=$(wc -l $1|cut -d' ' -f1)|
  #file2=$(wc -l $2|cut -d' ' -f1)|
  #echo "$1 的行数是 $file1"------|
  #echo "$2 的行数是 $file2"------|
  #if [ $file1 -gt $file2 ];then -|
  #   echo "$file1 is more"-------|
  #elif [ $file1 -eq $file2 ];then|
  #echo "then same"---------------|
  #else---------------------------|
  #     echo "$file2 is more"----=|
  #fi-----------------------------|
  #shell脚本之用户交互
  #read [option]
  # -p 'prompt'提示符
  # -t timeout 时间
  # 练习,用read实现一个脚本 请求给一个用户,添加一个用户然后给定密码:
  # read -p "给我一个用户和密码:" A B          |
  #useradd $A                                  |
  echo $A                                     |
  #echo $B                                     |
  #echo "$B" |passwd "$A" --stdin &> /dev/null |
  #--------------------------------------------
  #read -p "是否保存重启:[Y/n]" A
  #if [ $A == "Y" ];then
  #reboot
  #else
  #echo "oh no"
  #fi
  写一个脚本,完成如下功能,判断给定的两个数值,谁大谁小。给定数值的方法:命令参数。
  命令交互
  #read -p "给我两个数值我来判断谁大谁小:" A B
  #if [  $A -gt $B ];then
  #echo "$A is big"
  #elif [  $A -eq $B ];then
  #echo "相等"
  #else
  #  echo "$B is big"
  #o "$2 is not find" |
  ##exit 3 ---------------|
  ##fi -------------------|--------
  ##file1=$(wc -l $1|cut -d' ' -f1)|
  ##file2=$(wc -l $2|cut -d' ' -f1)|
  ##echo "$1 的行数是 $file1"------|
  ##echo "$2 的行数是 $file2"------|
  ##if [ $file1 -gt $file2 ];then -|
  ##   echo "$file1 is more"-------|
  ##elif [ $file1 -eq $file2 ];then|
  ##echo "then same"---------------|
  ##else---------------------------|
  ##     echo "$file2 is more"----=|
  ##fi-----------------------------|
  ##shell脚本之用户交互
  ##read [option]
  ## -p 'prompt'提示符
  ## -t timeout 时间
  ## 练习,用read实现一个脚本 请求给一个用户,添加一个用户然后给定密码:
  ## read -p "给我一个用户和密码:" A B          |
  ##useradd $A                                  |
  #i
  #
  #
  #写一个脚本,提示用户输入一个字符串,如果输入时quit,则退出,否则,显示其输入的字符
  串脚本内容。
  #read -p "嘿嘿:" A    |
  #if [ $A == "quit" ];then           |
  #exit 1                             |
  #else                               |
  #echo "$A"                          |
  #fi                                 |
  #====================================
  #练习:背景:公司来了个新员工,需要给新员工开通系统账号和统计出新员工的信息。
  让用户指定一个用户名和密码,若用户名之前存在,先进行删除。之后则为用户添加系统账号
  。完成后,需要统计员工的:手机号,email。QQ号,年龄信息,收集后储存到该用户的家目录
  中。
  完成以上操作,询问该用户是否需要给给用户单独建立一个工作目录为/data/username,默认>是需要,如果不需要则需输入N或者n
  #read -p "给我一个用户名和密码,我来帮你添加:" A B
  #id $A &> /dev/null && userdel $A && useradd -r $A && echo "$B" |passwd $A --stdin || #useradd  -r $A && echo "$B" |passwd $A --stdin
  #echo $A
  #echo $B
  #touch /home/$A.txt
  #read -p "请将你的手机号,邮箱,QQ号,年龄,依次输入以空格隔开:" C D E F
  #echo -e "手机:$C\n邮箱:$D\nQQ:$E\n年龄:$F " >> /home/$A.txt
  #read -p "需要帮你建立一个工作目录吗?[Y/N]:" G
  #if [  $G == "n" ];then
  #exit 1
  #elif [ $G == "N" ];then
  #exit 2
  #else
  #mkdir -p /data/$A && echo "工作目录创建完成"
  #fi


运维网声明 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-557479-1-1.html 上篇帖子: shell脚本基础与练习 下篇帖子: shell脚本循环的意义和概念
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

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

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

扫描微信二维码查看详情

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


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


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


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



合作伙伴: 青云cloud

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