传递要在脚本中使用的命令行参数/选项的最理想方法是什么?

传递要在脚本中使用的命令行参数/选项的最理想方法是什么?

我需要编写一个脚本,在命令行中获取用户输入并在 shell 脚本中使用它。例如,创建一个接受-u(用户)-r(数字)命令行选项的脚本。我不想使用 Perl 或其他东西,这一切都应该在同一个脚本中完成。这个问题的第二部分是如何传递类似于不同脚本的内容,但不传递用户名或需要创建的次数。

然后,脚本将使用该信息创建一个批处理,用于创建用户 bob x 次,例如,如果我输入

batch user -u bob -r 5

我最终会得到用户帐户 bob1、bob2、bob3、bob4、bob5

我不知道最好的方法来做到这一点。

答案1

您可以用来getopts解析命令行。查看man bash并搜索getopts详细信息。以下是如何使用它的示例:

#!/bin/bash
#
usage="USAGE: ${0/*\/}  [-r <number>]  [-u <user>]"
while getopts ':r:u:' OPT
do
    case "$OPT" in
        r) thenumber="$OPTARG" ;;
        u) theuser="$OPTARG" ;;
        *) echo "$usage" >&2; exit 1 ;;
    esac
done
shift $((OPTIND -1))

echo "thenumber=${thenumber:-<unset>}"
echo "theuser=${theuser:-<unset>}"
exit 0

相关内容