Я хочу, чтобы первый блок переключения регистра оценивал 1-й и 3-й позиционные аргументы. Если 1-й предоставленный позиционный аргумент не определен, то я хочу перейти к следующему блоку переключения регистра, чтобы оценить ТОЛЬКО 3-й позиционный аргумент.
мой код выглядит следующим образом:
case "$1" in
X) case "$3" in
-d) if [[ "$4" =~ ^[A-Z]+-[0-9]+$ ]]; then
CreateMarketDir;
SymlinkMarketData;
else
CreateMarketDir;
fi;;
esac
*) echo "Exiting the first Case Block"
exit;;
esac
case "$3" in
-c) if [[ "$4" =~ ^[A-Z]+-[0-9]+$ ]]; then
CreateDCDir;
SymlinkDCData;
else
CreateDCDir;
fi;;
*) echo "Please use a valid argument"
exit;;
esac
Тем не менее, работает только первый блок переключения регистра - например, все работает нормально:
./script.sh X foo -d
Но когда я пытаюсь запустить со следующими аргументами:
./script.sh foo bar -c
I получить этот вывод:
Please use a valid argument
Я предполагаю, что если 1-й позиционный аргумент не X
, то сценарий должен проверить следующий блок переключения регистра и оценить 3-й позиционный аргумент. Но, видимо, это не тот случай.
Как мне реализовать последовательную проверку нескольких блоков переключения регистра?
Спасибо