【问题标题】:How to write user defined options in shell script? [duplicate]如何在 shell 脚本中编写用户定义的选项? [复制]
【发布时间】:2023-03-09 02:48:01
【问题描述】:

可能重复:
Using getopts in bash shell script to get long and short command line options

这是我写的代码

#! /bin/bash

getopts master $1

while getopts ":master" opt; do
  case $opt in
    master)
      echo "-master was triggered! $1 was entered" >&2
      ;;
    \?)
      echo "Invalid option: -$OPTARG" >&2
      ;;
  esac
done

这是我得到的输出-

]$ ./test123.sh -master 123
./test123.sh: line 3: getopts: `-master': not a valid identifier

如何定义用户定义的选项?

【问题讨论】:

    标签: linux shell


    【解决方案1】:

    我认为有几个问题。

    1. 我不明白这个 (getopts master $1) 在做什么,你可以删除它
    2. 我认为您需要单个 char 参数(即 -m 与 -master)

    例如以下似乎有效:

    #!/bin/bash
    while getopts ":m" opt; do
      case $opt in
        m)
          echo "-m was triggered! $1 was entered" >&2
          ;;
        \?)
          echo "Invalid option: -$OPTARG" >&2
          ;;
      esac
    done
    

    【讨论】:

    • 当我运行脚本时,我得到的输出是-m was triggered! -m was entered,但我希望输出是-m was triggered! 123 was entered
    • 知道了。我必须写成echo "-m was triggered! $2 was entered" >&2
    猜你喜欢
    • 1970-01-01
    • 2011-06-24
    • 1970-01-01
    • 2012-08-17
    • 1970-01-01
    • 2010-09-15
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多