Мне нравится использовать следующий формат в сценариях для команд с большим количеством параметров (для удобства чтения):
docker run \
--rm \
-u root \
-p 8080:8080 \
-v jenkins-data:/var/jenkins_home \
-v /var/run/docker.sock:/var/run/docker.sock \
-v "$HOME":/home \
jenkinsci/blueocean
Но иногда я хотел бы закомментировать один из этих параметров, например:
# -p 8080:8080
Это не работает, так как EOL интерпретируется как return и команда не выполняется. Пробовал это тоже:
\ # -p 8080:8080
что тоже не сработало.
Вопрос: есть ли способ закомментировать параметр, поэтому он все еще находится на отдельной строке, но я смогу выполнить сценарий?
shell-script
shell
scripting
Chirlo
источник
источник
:
пустую команду или комментарий), но работает.:
будетtrue
Вы не можете закомментировать часть строки.
Обратите внимание, что, поскольку экранированные строки экранированы, команда на самом деле представляет собой одну строку (для синтаксического анализатора оболочки), и нет способа закомментировать часть одной строки (за исключением самого конца).
Вместо этого, возможно, просто сделайте копию исходной команды в редакторе и закомментируйте ее полностью, оставив измененную команду без комментариев:
В качестве альтернативы, если вы хотите время от времени удалять или изменять
-p
параметр и его аргумент (при условииbash
или оболочки с тем же синтаксисом массива):Затем просто измените или закомментируйте назначение
port
.Принимая это дальше:
Внутри назначения массива нет проблем с закомментированием строки:
источник