相关疑难解决方法(0)

在bash shell脚本中使用getopts来获取长和短的命令行选项

我希望使用我的shell脚本调用多种形式的命令行选项.

我知道getopts可以使用,但就像在Perl中一样,我无法对shell做同样的事情.

关于如何做到这一点的任何想法,以便我可以使用如下选项:

./shell.sh --copyfile abc.pl /tmp/
./shell.sh -c abc.pl /tmp/
Run Code Online (Sandbox Code Playgroud)

在上面,两个命令对我的shell意味着相同的东西,但使用getopts,我还没有能够实现这些?

bash getopt getopts command-line-arguments

390
推荐指数
17
解决办法
39万
查看次数

如何在 shell 中使用互斥标志并添加可选参数标志(使用 getopts)

我正在使用标准 getopts 逻辑。但我想知道如何才能使我提供的选项相互排斥。例如

shell.sh -a SID 
                              <accepted>
shell.sh -b SID
                              <accepted>
shell.sh -ab SID 
               Message- using ab together is the same as running shell.sh     without   any   options supplying  just SID . Help usage < ya da ya > 
shell.sh 
                Please enter SID at the minimum. Usage < ya da ya >
shell.sh SID
               <accepted>
Run Code Online (Sandbox Code Playgroud)

我正在尝试使用如下所示的方法来开发这个逻辑

while getopts ":a:b:" opt; do
  case $opt in
  a ) SID="$OPTARG";;
      set var=1
  b ) SID="$OPTARG";;
      set var=2

 \?) echo "Invalid option: -"$OPTARG"" >&2
        exit …
Run Code Online (Sandbox Code Playgroud)

shell awk case getopts command-line-arguments

3
推荐指数
1
解决办法
5513
查看次数

标签 统计

command-line-arguments ×2

getopts ×2

awk ×1

bash ×1

case ×1

getopt ×1

shell ×1