如何使用 $1 和 $2 在 bash 脚本中包含自定义命令选项?

Ano*_*ous 3 command-line scripting bash shell-script arguments

我有一个脚本myscript.sh

#!/bin/sh

echo $1 $2
Run Code Online (Sandbox Code Playgroud)

它的用途类似于...

./myscript.sh foo bar
Run Code Online (Sandbox Code Playgroud)

这给了我一个输出...

foo bar
Run Code Online (Sandbox Code Playgroud)

但我怎样才能让这个脚本包含自定义命令选项呢?例如 ...

./myscript.sh -a foo and corespond to $1
Run Code Online (Sandbox Code Playgroud)

./myscript.sh -b bar and corespond to $2
Run Code Online (Sandbox Code Playgroud)

Yur*_*ruk 5

您应该使用man 1 bash

小例子:

#!/bin/bash

while getopts "a:b:" opt      # get options for -a and -b ( ':' - option has an argument )
do
    case $opt in
        a) echo "Option a: $opt, argument: $OPTARG";;
        b) echo "Option b: $opt, argument: $OPTARG";;
    esac
done
Run Code Online (Sandbox Code Playgroud)