Вот мой Баш скрипт, очень просто, без мяса в нем в данный момент:Ограничение аргументов Bash?
#!/bin/bash
NO_ARGUMENTS=0
ARG_ERROR=10
if [ $# -eq "$NO_ARGUMENTS" ]
then
echo "Usage: `basename $0` options (-h -C -m)"
exit $ARG_ERROR
fi
helpscreen()
{
echo
echo "========================"
echo "Help Screen:"
echo "Available Arguments:"
echo "-h - Displays this screen"
echo "-C - Complete Install"
echo "-m - Minimal Install"
echo "========================="
echo
}
completeinstall()
{
echo "Complete Install Initiating"
}
minimalinstall()
{
echo "Minimal Install Initiating"
}
while getopts ":hCm" Option
do
case $Option in
h) helpscreen;;
C) completeinstall;;
m) minimalinstall;;
*) echo "Option Not Available.";;
esac
done
exit
Как вы можете видеть, что это просто работает варианты, когда ./test.sh -h, -C или -m выбран. Моя проблема в том, что пользователь может выбрать -Cm и запустить его как с полной, так и с минимальной установкой. Как я могу отредактировать это, чтобы прекратить такое событие или ограничить его.
добавить перерыв? 'C) completeinstall; break ;; '? удачи. – shellter
= S Выполнено, что на многих других сценариях просто не так. Решила это = P! Вы можете пойти и отправить это как ответ, если хотите. – Chirality
FYI, один обычный способ сделать это - не передавать эксклюзивные настройки типа «режим» в качестве флагов, а скорее рассматривать исключительные аргументы в качестве подкоманд; то есть. './install complete' или' ./install minimum'; таким образом, нет необходимости в принудительном исполнении, поскольку есть дополнительные флаги. –