加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > Linux > 正文

Linux shell进阶

发布时间:2020-12-14 01:58:28 所属栏目:Linux 来源:网络整理
导读:由于条件判断和循环跟其他语言都大同小异,学过编程的话很好理解,这里只贴出格式,不具体写用法了。(select菜单会详细讲一下) 条件判断 if条件判断 普通if条件判断: if 判断条件1; then 条件为真的分支代码elif 判断条件2; then 条件为真的分支代码elif

由于条件判断和循环跟其他语言都大同小异,学过编程的话很好理解,这里只贴出格式,不具体写用法了。(select菜单会详细讲一下)

条件判断

if条件判断

普通if条件判断:

if 判断条件1; then
    条件为真的分支代码
elif 判断条件2; then
    条件为真的分支代码
elif 判断条件3; then
    条件为真的分支代码
else
    以上条件都为假的分支代码
fi

?嵌套if条件判断:

if 判断条件1; then
    条件为真的分支代码
else
    if 判断条件2; then
        条件为真的分支代码
    else
        条件为真的分支代码
    fi
fi
```    
### case条件判断
```bash
case 变量引用 in
PAT1)
    分支1
    ;;
PAT2)
    分支2
    ;;
#...省略
*)
    默认分支
esac

?

循环

for循环

普通for循环:

for 变量名 in 列表;do
    循环体
don

?

嵌套for循环:

for 变量名1 in 列表1;do
    循环体1
    for 变量名2 in 列表2;do
        循环体2
    done
done

?

while循环

while CONDITION; do
    循环体
done

?

until循环

until CONDITION; do
    循环体
done

?

循环中使用continue和break

continue 结束本次循环,还会进入下一轮循环
break 结束全部循环,不会进入下一轮循环

循环工中使用shift跳过参数列表中的某项

用于处理参数不确定的情况,shift比较好用

while循环的特殊用法(遍历文件的每一行)

while read line; do
循环体
done < /PATH/FROM/SOMEFILE

select 菜单

  • select 循环主要用于创建菜单,按数字顺序排列的菜单项将显示在标准错误上,并显示 PS3 提示符,等待用户输入。
  • 用户输入菜单列表中的某个数字,执行相应的命令
  • 用户输入被保存在内置变量 REPLY 中。
  • 可以和case结合使用。

下面举个和select和case结合使用的例子:

PS3="Please choose your food(Input No.): "
select food in "exit" "huimian" "juejiangmian" "laomo" "yangroutang"
do
    case $food in
        "exit")
            echo Your choice is $REPLY
            echo "Thanks!"
            exit
            ;;
        "huimian"|"juejiangmian")
            echo Your choice is $REPLY
            echo "12 yuan"
            ;;
        "laomo")
            echo Your choice is $REPLY
            echo "15 yuan"
            ;;
        "yangroutang")
            echo Your choice is $REPLY
            echo "20 yuan"
            ;;
        *)
            echo "Dont‘s have this food"
            ;;
    esac
done

trap 信号捕捉

  • trap ‘触发指令‘ 信号 :自定义进程收到系统发出的指定信号后,将执行触发指令 ,而不会执行原操作

  • trap ‘‘ 信号 :信号忽略信号的操作

  • trap ‘-‘ 信号 :恢复原信号的操作

  • trap -p:列出自定义信号操作

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读