内联评论bash?
我希望能够在单行命令中注释一个单一的标志。 Bash似乎只有`从#到结束'的评论。 我正在看像这样的技巧:
ls -l $([ ] && -F is turned off) -a /etc
这是丑陋的,但总比没有好。 有人有更好的build议吗?
UPDATE
以下似乎工作,但我不知道是否是便携式:
ls -l `# -F is turned off` -a /etc
我发现最简单的(也是最可读的)就是复制这一行,并注释掉原始版本:
#Old version of ls: #ls -l $([ ] && -F is turned off) -a /etc ls -l -a /etc
我的首选是:
在BASH脚本中进行注释
这将有一些开销,但从技术上说,它确实回答你的问题
echo abc `#put your comment here` \ def `#another chance for a comment` \ xyz etc
对于pipe道来说,有一个干净的解决scheme,没有开销
echo abc | # normal comment OK here tr az AZ | # another normal comment OK here sort | # the pipelines are automatically continued uniq # final comment
如何为多线命令放置线条评论
$(: ...)
有点不那么难看,但还是不好。
如何将其存储在一个variables?
#extraargs=-F ls -l $extraargs -a /etc
大多数命令都允许参数以任何顺序出现。 只需将注释标志移动到行尾即可:
ls -l -a /etc # -F is turned off
然后打开它,只是取消注释并删除文本:
ls -l -a /etc -F
这是我在多个pipe道命令之间进行内联注释的解决scheme。
示例未注释的代码:
#!/bin/sh çat input.txt \ | grep something \ | sort -r
pipe道注释的解决scheme(使用帮助函数):
#!/bin/sh pipe_comment() { cat - } cat input.txt \ | pipe_comment "filter down to lines that contain the word: something" \ | grep something \ | pipe_comment "reverse sort what is left" \ | sort -r
或者,如果你愿意,这里没有助手function的解决scheme是相同的,但它有点混乱:
#!/bin/sh cat input.txt \ | cat - `: filter down to lines that contain the word: something` \ | grep something \ | cat - `: reverse sort what is left` \ | sort -r
如果你知道一个variables是空的,你可以用它作为注释。 当然,如果它不是空的,它会搞乱你的命令。
ls -l $ {1#-Fclosures} -a / etc
§10.2。 参数替代
如果评论是值得的,那么它可能会在行的末尾,也可能在行的末尾。 在任何语言的评论之前和之后,我很less发现需要使用代码进行在线评论。
哦,有一个例外,这是我通常使用的使用“{comments}”的SQL方言。 偶尔,我会写:
CREATE UNIQUE INDEX u1_table ON Table(...); CREATE {DUPS} INDEX d1_table ON Table(...);
但即使这样也是一个延伸。