1

У меня длинная командная строка, длиннее, но похожая на пример ниже. Я хотел бы добавить комментарии к индивидуальному аргументу в смысле того, что показано здесь:

ssh -N \
    -R :10000:10.0.0.1:80 \ # test system
    -R :10001:10.0.0.2:80 \ # integration system
    -R :10002:10.0.0.3:80 \ # database foo
    -R :10003:10.0.0.4:80 \ # some other server
    example.com

Но это, к сожалению, не работает, так как символы \ здесь больше не выходят за пределы строки. Вместо этого он избегает пробела перед # , таким образом, предотвращает синтаксический анализ # как начала комментария (# может не отображаться внутри токена, если он должен быть проанализирован как начало комментария).

Это также не работает , потому что здесь, вместо \ Ускользающий # то # теперь предотвращает \ от интерпретации.

-R :10000:10.0.0.1:80 # test system \

Есть ли способ как-то смешать комментарии и аргументы командной строки (возможно, в отдельных строках) одной длинной команды? Если нет, что бы вы предложили мне сделать, чтобы как-то связать данные, передаваемые команде, с рекомендациями описать это?

1 ответ1

3

Из этого вопроса StackOverflow Bash: Как поместить комментарий к строке для многострочной команды? приходит этот ответ:


По сути, используя подстановку команд bash backtick, можно размещать эти комментарии в любом месте длинной командной строки, даже если она разбита на строки. Я поместил команду echo перед вашим примером, чтобы вы могли выполнить пример и посмотреть, как он работает.

echo CommandName InputFiles `#1st comment` \
             --option1 arg1 `#2nd comment` \
             --option2 arg2 `#3rd comment`

Другой пример, где вы можете разместить несколько комментариев в разных точках на одной строке.

some_cmd --opt1 `#1st comment` --opt2 `#2nd comment` --opt3 `#3rd comment`

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .