Я хочу написать скрипт, который будет принимать пользовательский ввод с помощью флагов / переключателей, а затем устанавливать переменные ENV из этих данных.
Файл называется 'set_env. zsh'.
!#/bin/zsh
while getopts eilt option
do
case "${option}"
in
e) ENVIRON=${OPTARG};;
i) ID=${OPTARG};;
l) LOGIN=${OPTARG};;
t) TOKEN=${OPTARG};;
esac
echo $option
done
if [ $#ENVIRON -gt 0 ];then
export PRINTER_ENV=$ENVIRON
echo $PRINTER_ENV
elif [ $#ID -gt 0 ];then
export PRINTER_ID=$ID
echo $PRINTER_ID
elif [ $#LOGIN -gt 0 ];then
export PRINTER_EMAIL=$LOGIN
echo $PRINTER_EMAIL
elif [ $#PRINTER_TOKEN -gt 0 ];then
export PRINTER_TOKEN=$TOKEN
echo $PRINTER_TOKEN
fi
Чтобы выполнить скрипт:
source set_env.sh -e DEVELOPMENT -i printer_01 -l my_email@email.com -t my_tokens
Когда я проверяю переменные ENV с помощью printenv
, ни одна из них не была установлена.
Однако, когда я запускаю тот же скрипт и просто ставлю export TEST=test
внутри него в качестве первой фактической строки кода, которая должна быть выполнена, а затем выполните printenv
после того, как скрипт успешно сохранит переменные ENV.
Любое понимание этого вопроса будет высоко оценено!