Комментарий в списке аргументов цикла bash - PullRequest
0 голосов
/ 23 мая 2018

Я хочу прокомментировать части bash для списка аргументов цикла.Я хотел бы написать что-то вроде этого, но я не могу разорвать цикл на несколько строк.Использование \, похоже, тоже не работает.

for i in
  arg1 arg2     # Handle library
  other1 other2 # Handle binary
  win1 win2     # Special windows things
do .... done;

Ответы [ 2 ]

0 голосов
/ 23 мая 2018

В приведенном ниже коде я не использую handlethings+=, будет слишком легко забыть пробел.

handlethings="arg1 arg2"                     # Handle library
handlethings="${handlethings} other1 other2" # Handle binary
handlethings="${handlethings} win1 win2"     # Special windows things

for i in ${handlethings}; do
   echo "i=$i"
done
0 голосов
/ 23 мая 2018

Вы можете сохранить свои значения в массиве, а затем перебрать их.Инициализация массива может чередоваться с комментариями в отличие от продолжения строки.

values=(
    arg1 arg2     # handle library
    other1 other2 # handle binary
    win1 win2     # Special windows things
)
for i in "${values[@]}"; do
    ...
done

Еще один, хотя и менее эффективный способ сделать это - использовать подстановку команд.Этот подход склонен к разбиению слов и глобализации проблем.

for i in $(
        echo arg1 arg2     # handle library
        echo other1 other2 # handle binary
        echo win1 win2     # Special windows things
); do
  ...
done

Связанный:

...