Не удается понять сценарий оболочки с помощью регулярного выражения - PullRequest
0 голосов
/ 26 сентября 2019

Я новичок в сценариях оболочки.У меня есть следующие фрагменты, и это действительно сложно.Чем больше я на это смотрю, тем больше я запутываюсь.

while test $# -gt 0; do
        [[ $1 =~ ^-c|--chartrelease$ ]] && { chartRelease="$2"; shift 2; continue; };
        echo "Parameter not recognized: $1, ignored"
        shift
done
: "${chartRelease:="default"}" 

Может ли кто-нибудь дать простое объяснение, чтобы очистить эту тайну?Например, какова цель $1 =~ ^-c|--chartrelease$

1 Ответ

2 голосов
/ 26 сентября 2019

Не могли бы вы пройти один раз, это только для пояснения.

while test $# -gt 0; do                          ##Starting a while loop which traverse through all arguments provided to script.
[[ $1 =~ ^-c|--chartrelease$ ]] &&               ## Checking condition if  first argument is either starting with letter c OR ending with --chartrelease then only DO next action in {}.
{ chartRelease="$2"; shift 2; continue; };       ##Setting variable chartRelease to 2nd argument  then using shift will remove first 2 arguments and make 3rd argument as new $1, continue will go to next cycle of  while loop skipping all next statements from here.
echo "Parameter not recognized: $1, ignored"     ##Echo is printing that $1 is NOT recognized this will execute when above if condition is NOT TRUE.
        shift  ##Shift will make $2 as new $1
done                                             ##Closing while loop here.
: "${chartRelease:="default"}"                   ##In case variable ChartRelease is null then set its value as string default.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...