コマンドライン引数またはユーザー入力(読み取りコマンド)を介して変数を設定するようにbashスクリプトを変更したいと思います。引数がコマンドラインに渡されると、ユーザー入力を要求せずにスクリプトを実行する必要があります。
コマンドライン引数またはユーザー入力に変数を設定できますが、同じスクリプトに両方を設定することはできません。
#!/bin/sh
ENVIRONMENT_NAME=$1
EMAIL=$2
read ENVIRONMENT_NAME
read EMAIL
echo "$ENVIRONMENT_NAME"
echo "$EMAIL"
次のように読み取りコマンドを実行すると、$ 1と$ 2から値を取得する必要があります。
./<scriptname> <environment_name> <email>
ベストアンサー1
$#
パラメータが指定されていることを確認するには(パラメータ数)値を表示します。
#! /bin/sh -
if [ "$#" -ge 1 ]; then
ENVIRONMENT_NAME=$1
else
IFS= read -r ENVIRONMENT_NAME || exit # on EOF
fi
if [ "$#" -ge 2 ]; then
EMAIL=$2
else
IFS= read -r EMAIL || exit # on EOF
fi