![スクリプトで使用するコマンドライン引数/オプションを渡す最も理想的な方法は何ですか? [閉鎖]](https://linux33.com/image/112857/%E3%82%B9%E3%82%AF%E3%83%AA%E3%83%97%E3%83%88%E3%81%A7%E4%BD%BF%E7%94%A8%E3%81%99%E3%82%8B%E3%82%B3%E3%83%9E%E3%83%B3%E3%83%89%E3%83%A9%E3%82%A4%E3%83%B3%E5%BC%95%E6%95%B0%2F%E3%82%AA%E3%83%97%E3%82%B7%E3%83%A7%E3%83%B3%E3%82%92%E6%B8%A1%E3%81%99%E6%9C%80%E3%82%82%E7%90%86%E6%83%B3%E7%9A%84%E3%81%AA%E6%96%B9%E6%B3%95%E3%81%AF%E4%BD%95%E3%81%A7%E3%81%99%E3%81%8B%EF%BC%9F%20%5B%E9%96%89%E9%8E%96%5D.png)
コマンドラインからユーザー入力を取得し、それをシェルスクリプトで使用するスクリプトを作成する必要があります。たとえば、-u
(ユーザー)-r
(番号)コマンドラインオプションを許可するスクリプトを作成します。私はPerlのようなものを使用したくありません。これはすべて同じスクリプトで実行する必要があります。この質問の2番目の部分は、ユーザー名や生成する回数を渡すのではなく、他のスクリプトと同じものを渡す方法です。
その後、スクリプトはその情報を使用してユーザーボブを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