shell怎么写,学的脚本一写就废

有没有人能说一下脚本当中while和case和if的用法啊
今天学的脚本,一听就会,一写就废
思路都没有😭

while是循环的意思,格式:while(运行条件),当满足运行条件时,一直执行里面的程序
case 是多选择语句
case 变量名 In
1)……
2)……
3)……
if是如果的意思,启判断的作用

#!/bin/bash

du=$(df | grep "/$" | awk '{print $5}' | awk -F'%' '{print $1}')

if 如果[ $du -gt 3 ]

then

      echo "使用超出"

fi

~

~

不知道你这个问题是否已经解决, 如果还没有解决的话:
  • 这有个类似的问题, 你可以参考下: https://ask.csdn.net/questions/187792
  • 我还给你找了一篇非常好的博客,你可以看看是否有帮助,链接:shell脚本--模式匹配case
  • 除此之外, 这篇博客: Shell 脚本应用(三)—case 多分支语句,for 循环语句,while 循环语句中的 1.while 语句的结构 部分也许能够解决你的问题, 你可以仔细阅读以下内容或者直接跳转源博客中阅读:
    • 重复测试某个条件,只要条件成立则反复执行;
    • while 语句有两个特殊的条件测试操作,true 真和 false 假,只有当条件测试为 true 时,才会执行命令序列。
    while  条件测试操作
    do
      命令序列
    done
    

    在这里插入图片描述

  • 以下回答来自chatgpt:

    首先,感谢你的问题。学习编写shell脚本需要一定的时间和经验,下面我将给出while、case和if在脚本中的具体用法。

    • while循环: while循环用于根据条件循环执行一块代码。它的一般格式如下: shell while condition do command1 command2 ... commandN done

    这是一个示例,每次循环时会打印出数字1到5: shell #!/bin/bash count=1 while [ $count -le 5 ] do echo "Number: $count" count=$((count+1)) done

    • case语句: case语句用于根据不同的匹配条件执行不同的代码。它的一般格式如下: shell case variable in pattern1) command1 ;; pattern2) command2 ;; pattern3) command3 ;; ... patternN) commandN ;; *) default-command ;; esac

    这是一个示例,根据不同的输入选项执行不同的操作: ```shell #!/bin/bash echo "Select an option: " echo "1. Option 1" echo "2. Option 2" echo "3. Option 3" read option

    case $option in 1) echo "You selected Option 1" ;; 2) echo "You selected Option 2" ;; 3) echo "You selected Option 3" ;; *) echo "Invalid option" ;; esac ```

    • if语句: if语句用于根据条件执行不同的代码块。它的一般格式如下: shell if condition then command1 command2 ... commandN fi

    这是一个示例,如果用户输入的密码为12345,则打印出"Access granted",否则打印出"Access denied": ```shell #!/bin/bash read -p "Enter password: " password

    if [ $password = "12345" ] then echo "Access granted" else echo "Access denied" fi ```

    希望这些示例代码能够帮助你更好地理解while、case和if在shell脚本中的用法。如果你还有其他问题,请随时提问。


如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^