有没有更优雅的方法来编写带有重叠(嵌套)替代方案的语句?

象牙

我想编写带有重叠替代项的case语句。

互联网上的快速搜索为我提供了一些示例,这些示例具有唯一性且不重叠,例如:

case $var in
    a) <code> ;;
    b) <code> ;;
    *) <code> ;;
esac

但是我需要一种替代方案包含多种替代方案和其他工作的方案。我这样想:

case $loglevel in
    [0-7]) <code>
           case $loglevel in
                [0-3] <redirect to /dev/console> 
                ;;
                [4-7] <redirect to /dev/null> 
                ;;
           esac
    ;;
    *) <code> ;;
esac

我想还有其他更优雅或更合理的方法可以做到这一点。在我看来,这种简单情况的嵌套case语句太多了。

疾病

如果您的外壳足够现代,则即使当前条件成功,也可以使用;;&代替;;尝试以下条件:

#! /bin/bash
loglevel=$1
case $loglevel in
    ([0-7]) echo 0..7
            ;;&
    ([0-4]) echo 0..4
            ;;
    ([5-7]) echo 5..7
            ;;
    (*) echo Ohter
esac

这使

▏~ $ 1.sh 1
0..7
0..4
▏~ $ 1.sh 6
0..7
5..7

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

有没有更优雅的方法来折叠 dplyr 中的两行?

有没有更优雅的方法来检查表单默认值?

有没有更优雅的方法来查询多个OR和AND上的多对多表?

有没有更优雅的方法来检查freemarker中的变量?

Vue.js-有没有更优雅的方法来有条件地应用类?

有没有更有效/更优雅的方法来从开关案例中的功能更改数据?

有没有更优雅的方法来输入映射作为 Clojure 中 stdin 中的对列表?

有没有更优雅的解决方案来修改这些文件名?

Haskell:有没有更好的方法来编写具有相同RHS的case语句?

有没有一种更优雅的方式来代替编写大量查询?

有没有更优雅的方式来编写这个 If/or 条件?

有没有更优雅的方法来过滤函数的失败结果?

有没有更好或更优雅的方法来处理python中的字典循环异常?

有没有更优雅的方式来执行这个 switch 语句?

有没有更好的方法来编写这个 switch 语句 javascript

在python中有没有更简单的方法来编写6个嵌套的for循环?

有没有更好的方法来编写这样的嵌套 if-else?

有没有更好的方法来简化许多嵌套的 select 语句?

有没有更好或更优雅的方法来在React Native中有条件地渲染不同的组件?

有没有一种方法可以更优雅地编写此“ if”列表?

有没有更优雅的方法可以在Swift中编写这种惰性加载模式?

有没有一种优雅的方法来重写使用match语句获取或创建Option的方法?

有没有更优雅的方式?

嵌套数组过滤,还有没有更优雅的方法?

有没有更优雅的子串方法?

有没有更好,更优化的方法来执行此SQL查询?

有没有更好或更优雅的方法来找出实际显示器的有效像素尺寸?

与使用动态SQL相比,有没有更好/替代的方法来编写接受算术运算符的查询?

有没有更优雅的方法来使用 array.map 在 NodeJS 中解决这个问题?