为了账号安全,请及时绑定邮箱和手机立即绑定
  • #!/bin/bash #从1到100 i=1 s=0 #while条件循环!! while [ $i -le 100 ] #lt(小于) gt(大于) le(小于等于) ge(大于等于) #如果变量i的值小于100或者等于100,则执行循环 do s=$(($s+$i)) i=$(($i+1)) done echo "The sum is: $s"
    查看全部
  • 源代码(批量解压缩包)<br> <br> #!/bin/bash cd /root/test ls *.tar.gz > ls.log(>覆盖) ls *.tgz >> ls.log(>>添加) for i in $(cat ls.log) do tar -zxvf $i & > /dev/null done rm -rf ls.log
    查看全部
    1 采集 收起 来源:for循环

    2018-03-22

  • #!/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" #输出数值运算结果
    查看全部
  • 判断1 -a 判断2:逻辑与,判断1和判断2都成立,最终结果为真 判断1 -o 判断2:逻辑或,判断1和判断2有一个成立,最终结果为真 !判断:逻辑非,是原始的判断式取反
    查看全部
  • 多分支case条件语句 case语句和if...elif...else语句一样都是多分支条件语句,不过和if多分支条件语句不同的是,case语句只能判断一种条件关系,而if语句可以判断多种条件关系。
    查看全部
  • 例11.删除系统中的普通用户 #!/bin/bash for i in $(cat /etc/passwd grep /bin/bash grep -v root cut -d ":" -f1) do userdel -r $i done 6.while循环和until循环 while循环 --> 条件成立才循环,条件不成立即停止循环 例12. #!/bin/bash i=1 s=0 while [ $i -le 100 ] do s=$(( $s+$i )) i=$(( $i+1 )) done echo $s until循环和while循环相反,until为条件不成立时候循环并执行程序,一旦循环条件成立,则终止循环 上式换为until即为: #!/bin/bash i=1 s=0 until [ $i -gt 100 ] #循环直到变量i大于100,就停止循环 do s=$(( $s+$i )) i=$(( $i+1 )) done echo "The sum is: $s." 其他shell脚本: vi /etc/rc.d/init.d/httpd
    查看全部
    1 采集 收起 来源:课程总结

    2018-03-22

  • 例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

  • 源代码(批量解压缩包)<br> <br> #!/bin/bash cd /root/test ls *.tar.gz > ls.log(>覆盖) ls *.tgz >> ls.log(>>添加) for i in $(cat ls.log) do tar -zxvf $i & > /dev/null done rm -rf ls.log
    查看全部
    1 采集 收起 来源:for循环

    2018-03-22

  • 错误小结:test1=$(echo $num1 | sed 's/[0-9]//g') sed后有空格 if [ -z "$test1" -a -z "$test2" ] if后有空格[]内前后有空格 if [ "$ope" == '+' ] ==左右有空格 echo "Error: Please input numbers![0-9]" exit 20 后面数字太大的话用,echo $?将不会正确显示数字。
    查看全部
  • #!/bin/bash read -t 30 -p "Please input yes/no:" cho case "$cho" in "yes") echo "You input yes!" ;; "no") echo "You input no!" ;; *) echo "Please input yes/no!" ;; esac
    查看全部
  • #!/bin/bash read -t 30 -p "Please input a file name:" file if [ -z "$file" ] then echo "Error, please input a file name!" exit 11 elif [ ! -e "$file" ] then echo "Your input is not a file name!" exit 22 elif [ -f "$file" ] then echo "$file is a regular file!" elif [ -d "$file" ] then echo "$file is a directory !" else echo "$file is another file!" fi
    查看全部
  • 多重条件判断
    查看全部
  • 字符串的判断
    查看全部
  • 文件权限的判断
    查看全部

举报

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

微信扫码,参与3人拼团

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

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