我在shell脚本中调用了很长的参数列表:
foo-command \
--important-argument $ONE \
--indispensable-flag $ENABLED \
--an-optional-toggle "will probably be commented out some day" \
$ARGUMENTS \
$MORE_ARGUMENTS
我无法在此多行电话中插入评论,可以吗?
例如,假设我如何评论--an-optional-toggle
行?
如何在# in sorted order
之后添加$ARGUMENTS
条评论?
无论我尝试什么,octothorp #
符号阴影线延续反斜杠\
,反之亦然。有什么建议吗?
答案 0 :(得分:7)
不,但您可以将参数存储在数组中。这允许您注释掉单个行以及包含散布的注释。
args=( --important-argument "$ONE"
--indispensable-flag "$ENABLED"
# --an-optional-toggle "will probably be commented out some day"
$ARGUMENTS # in sorted order
$MORE_ARGUMENTS
)
foo-command "${args[@]}"
请注意,您几乎肯定也希望制作ARGUMENTS
和MORE_ARGUMENTS
数组,因此args
最终会看起来像
args=( --important-argument "$ONE"
--indispensable-flag "$ENABLED"
# --an-optional-toggle "will probably be commented out some day"
"${ARGUMENTS[@]}" # in sorted order
"${MORE_ARGUMENTS[@]}"
)
答案 1 :(得分:6)
尝试反引号评论黑客 as proposed in an earlier response同样的问题。
在您的情况下,这将是:
foo-command \
--important-argument $ONE \
--indispensable-flag $ENABLED \
`#--an-optional-toggle "will probably be commented out some day"` \
$ARGUMENTS \
$MORE_ARGUMENTS
答案 2 :(得分:1)
foo-command $(
# hello
printf --important-argument $ONE # free as a bird
printf --indispensable-flag $ENABLED
# to comment anywhere we wish
printf --an-optional-toggle "will probably be commented out some day"
printf $ARGUMENTS
printf $MORE_ARGUMENTS
)
这并不完美:回复-n
很难,因为echo
解释它;如果您希望保留它们等等,引号可能会消失。事实上,如下面的评论者所说,引用的字符串会被破坏;也许你可以解决这个问题,但如果你有Bash,其他答案会更好。