我需要编写一个脚本,在命令行中获取用户输入并在 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