【问题标题】:Bash : Elegant way for : case $1 in "parameter1" or "parameter2" [duplicate]Bash:优雅的方式:“parameter1”或“parameter2”中的case $1 [重复]
【发布时间】:2017-02-23 04:48:14
【问题描述】:

这是我的 Bash 脚本。

假设: 1) go.sh 是要执行的脚本 2)用户将以这种方式启动脚本

# ./go.sh -v file1.txt file2.txt

# ./go.sh --verbose file1.txt file2.txt

3) 我想用一种更优雅的方式来写这个:

#!/bin/bash
Verbose_Mode=0

until [ "$#" == "0" ]; do
   case $1 in
     "-v" or "--verbose")
      Verbose_Mode=1
      ;;

由于 :"-v" 或 "--verbose" 这将导致语法错误。

我的问题:如何正确编写(如果可能)代码:

#!/bin/bash
Verbose_Mode=0

until [ "$#" == "0" ]; do
   case $1 in
   "-v")
   Verbose_Mode=1
   ;;
   --verbose")
   Verbose_Mode=1
   ;;
   esac

提前感谢您的回答。

【问题讨论】:

  • 请参阅How to write a case statement in Bash 了解 Bash 案例语句的正确语法。
  • 您是允许用户在线上的任何地方使用开关还是仅作为第一个参数?如果只是首先你可以简单地测试它,转移并继续前进。
  • 感谢您的回答。 @grail 脚本中还有其他“案例”

标签: bash arguments case


【解决方案1】:

感谢此链接:How do I parse command line arguments in Bash?

这是我第一篇文章的答案:

 case $1 in
     -v|--verbose) 
      Verbose_Mode=1

谢谢

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-02-02
    • 1970-01-01
    • 1970-01-01
    • 2018-12-22
    • 2017-05-12
    • 1970-01-01
    • 2014-07-23
    相关资源
    最近更新 更多