LINUX.ORG.RU

Закомментировать параметр в bash-скрипте

 


0

1

Имеется команда вида

some-command \
    argument 1 \
#    argument 2 \
    argument 3

Такое не работает. Думаю очевидно, что я хочу: чтобы можно было легко включать-выключать один (или несколько) аргументов. Есть ли какой-то приём, который тут можно применить?

★★★★★

Массив/array

#!/bin/bash
args=(
  "arg1"
  #arg2
  arg3
)

cmd "${args[@]}"
anonymous
()
#!/usr/bin/bash

ARGS=(
    arg1
    # arg2
    arg3
)

echo Args: "${ARGS[@]}"
Args: arg1 arg3

Но имей в большом виду, что, если ты будешь использовать массивы внутри функций, то при повторном вызове функции содержимое массива может сохраняться поэтому перед выходом из функции надо делать unset. А ещё лучше вообще не писать на баше, потомушто он совершенно не годится для скриптования. Если есть хоть малейшая возможность не писать на баше — не пиши на баше.

anonymous
()
Ответ на: комментарий от anonymous

при повторном вызове функции содержимое массива может сохраняться поэтому перед выходом из функции надо делать unset.

Может лучше объявлять такие массивы как local? unset как-то костыльно.

xaizek ★★★★★
()

Шутка

Кипит мой разум возмущенный

Где обсуждение нового bash?

Владимир

anonymous
()
Ответ на: комментарий от xaizek

А, ну да, наверное у меня в этом тогда проблема и была, что по умолчанию в функциях переменные объявляются глобальными.

anonymous
()

Если не жалко нескольких миллисекунд на запуск пустого сабшелла.

some-command \
    argument 1 \
`#    argument 2` \
    argument 3
NeXTSTEP ★★
()
script.sh:

some-command      \
    argument 1    \
/*  argument 2 */ \
    argument 3
cpp -P script.sh | bash

Если не жалко нескольких миллисекунд на запуск препроцессора.

anonymous
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.