为了账号安全,请及时绑定邮箱和手机立即绑定
  • 例9.加法运算 #!/bin/bash #从1加到100 s=0 for(( i=1;i<=100;i=i+1 )) #注意,运算需要加到()中,而且shell中没有++,--这种写法 do s=$(( $s+$i )) done echo " 1+2+...+100 = $s " 例10 #!/bin/bash #批量添加指定数量的用户 read -p "Please input user name: " -t 30 name read -p "Please input the number of users: " -t 30 num read -p "Please input the password of users: " -t 30 pass if [ ! -z "$name" -a ! -z "$num" -a ! -z "$pass" ] then y=$(echo $num sed 's/[0-9]//g') if [ -z "$y" ] then for (( i=1;i<=$num;i=i+1 )) do /usr/sbin/useradd $name$i &>/dev/null echo $pass /usr/bin/passwd --stdin $name$i &>/dev/null #将useradd改为userdel,同时删掉添加密码这句就是删除用户 done fi fi 检验:cat /etc/passwd 普通用户跟其他用户的区别:普通用户可以登录/bin/bash,而其他用户为/sbin/nologin 提取出系统的普通用户:cat /etc/passwd grep /bin/bash grep -v root cut -d ":" -f1
    查看全部
    1 采集 收起 来源:课程总结

    2018-03-22

  • 例6.判断用户输入的是什么文件 #!/bin/bash #判断用户输入的是什么文件 read -p "Please input a filename: " file #接收键盘的输入,并赋予变量file if [ -z "$file" ] #判断file变量是否为空 then echo "错误,请输入一个文件名!" exit 1 elif [ ! -e "$file" ] #判断file的值是否存在 then echo "您输入的不是一个文件名!" exit 2 elif [ -f "$file" ] then echo "$file 是一个普通文件。" elif [ -d "$file" ] then echo "$file 是一个目录文件。" else echo "$file 是一个其他文件(硬链接等)。" fi 4.多分支case语句 语法: case $变量 in "值") 程序1 ;; "值") 程序2 ;; *) 程序3 ;; 例7.判断用户输入 #!/bin/bash read -p "Please input yes/no: " -t 30 choose case $choose in "yes") echo "Your choose is yes." ;; "no") echo "Your choose is no." ;; *) echo "Your choose is error, please choose yes or no." ;; esac 5.for语句 for 变量 in 值1 值2 值3... do 程序 done 例8. #!/bin/bash #批量解压缩文件 cd /root/test/ ls *.tar.gz > ls.log #将所有.tar.gz 结尾的文件名输出到ls.log文件中,并覆盖原有文件名 ls *.tgz >> ls.log #将.tgz结尾的文件追加到ls.log文件中 for i in $(cat ls.log) do tar -zxf $i &> /dev/null #将所有的输出结果都输出到/dev/null回收站中,不显示任何输出 done rm -rf ls.log
    查看全部
    1 采集 收起 来源:课程总结

    2018-03-22

  • 批量添加指定数量的用户
    查看全部
  • case1.sh
    查看全部
  • bash2.sh
    查看全部
  • bash.sh
    查看全部
  • #!/bin/bash read -t 30 -p "Please input num1: " num1 read -t 30 -p "Please input num2: " num2 #通过 read -t 30 -p "Please input a operator: " ope #通过 if [ -n "$num1" -a -n "$num2" -a -n "$ope" ] #第一层判断 then test1=$(echo $num1 sed 's/[0-9]//g') test2=$(echo $num2 sed 's/[0-9]//g') if [ -z "$test1" -a -z "$test2" ] #第二层判断,用来判断num1和num2的值为数值 #如果test1和test2的值为空,则证明num1和num2为数字 then #如果num1和num2为数字,则执行以下命令 if [ "$ope" == '+' ] #第三层判断用来确认运算符,测试变量$ope中是什么运算符 then sum=$(($num1 + $num2 )) elif [ "$ope" == '-' ] then sum=$(($num1 - $num2)) elif [ "$ope" == '*' ] then sum=$(($num1 * $num2)) elif [ "ope" == '/' ] then sum=$(($num1 / $num2)) else echo "Please enter a valid symbol!" #如果运算符不匹配,提示输入有效的符号 exit 10 #并退出程序,返回错误代码10。通过echo $?查看 fi else echo "Please enter a valid value!" #如果test1和test2的值不为空,则说明num1和num2不是数字 exit 11 #并退出程序,返回错误代码11 fi fi echo "$num1 $ope $num2 = $sum" #输出数值运算结果
    查看全部
  • sum.sh
    查看全部
  • sum.sh
    查看全部
  • sum.sh
    查看全部
  • 高护甲
    查看全部
  • 按照文件类型进行判断
    查看全部
  • 3.两个文之间进行比较 文件1 -ef 文件2 判断文件1是否和文件2的INode号一致,可以理解为两个文件是否为同一个文件。这个判断用于判断硬链接是很好的办法。 例如:ln /tmp/student.txt /tmp/stu.txt 首先创建硬链接 [ /root/student.txt -ef /tmp/stu.txt ] && echo yes echo no ll -i 可用于检验i节点 4.两个整数之间的比较 整数1 -ne 整数2 判断整数1和2是否相等 整数1 -gt 整数2 判断整数1是否大于整数2(大于为真) 整数1 -lt 整数2 判断整数1是否小于整数2(小于为真) 5.字符串的判断 字符串1 == 字符串2 判断字符串1和2是否相等 != 即为不相等 -z 字符串 判断字符串是否为空(为【空】返回真) -n 字符串 判断字符串是否为非空(【非空】返回真) aa==11 bb==22 [ "$aa" == "$bb" ] && echo yes echo no 注意! 如上判断时要注意变量需要用""括起来,否则容易报错 6.多重条件判断 判断1 -a 判断2 逻辑与,也就是and,判断1和判断2都成立,最终结果才为真 判断1 -o 判断2 逻辑或,or,判断1和判断2有一个成立,最终结果就为真 ! 判断 逻辑非,是原始的判断式取反 [ "$aa" == "$bb" -a "$aa" -gt 22 ] && echo yes echo no
    查看全部
  • shell编程之条件判断与流程控制 1.按照文件类型进行判断 常用如下: -d 文件 判断该文件是否存在,并且是否为目录文件(是目录为真) -e 文件 判断文件是否存在(存在为真) -f 文件 判断文件是否存在,并且是否为普通文件(是普通文件为真) 两种判断格式: test -e /root/install.log 或者 [空格-e空格/root/install.log空格] 常用中括号的命令,注意里面的三个空格。此时利用预定义变量 echo $? 如果返回值为0,则说明上一条命令正确执行。1表示未正确执行。 也可以:[-e /root/install.log] && echo yes echo no 根据shell中的数据流,当文件判断命令正确执行之后 &&命令的echo yes 便会同步执行,如果echo yes执行失败了,则会执行之后的echo no 2.按文件权限判断 常用如下: -r 文件 判断该文件是否存在,并且该文件是否拥有读权限(有读权限为真) -w 文件 判断该文件是否存在,并且该文件是否拥有写权限(有写权限为真) -x 文件 判断该文件是否存在,并且该文件是否有执行权限(有执行权限为真) [ -w /root/install.log ] && echo yes echo no
    查看全部
  • 多重条件判断
    查看全部

举报

0/150
提交
取消
课程须知
小伙伴们,学习本课程前需要掌握Linux常用命令,并学习《Tony老师聊shell》系列的前四门课程呦!
老师告诉你能学到什么?
1、掌握条件判断和流程控制的基本语句 2、通过大量案例的学习,掌握shell编程思想 3、体会shell编程在Linux运维中的重要作用

微信扫码,参与3人拼团

意见反馈 帮助中心 APP下载
官方微信
友情提示:

您好,此课程属于迁移课程,您已购买该课程,无需重复购买,感谢您对慕课网的支持!