相关疑难解决方法(0)

bash 多行命令在连续字符后带有注释

考虑

echo \ # this is a comment
foo
Run Code Online (Sandbox Code Playgroud)

这给出:

$ sh foo.sh
 # this is a comment
foo.sh: line 2: foo: command not found
Run Code Online (Sandbox Code Playgroud)

在网上搜索后,我在姊妹网站 Stack Overflow 上找到了DigitalRoss解决方案。所以一个人可以做

echo `: this is a comment` \
foo
Run Code Online (Sandbox Code Playgroud)

或者

echo $(: this is a comment) \
foo
Run Code Online (Sandbox Code Playgroud)

但是,DigitalRoss 没有解释为什么这些解决方案有效。我很感激解释。他回复了一条评论:

曾经有一个 shellgoto命令分支到指定的标签,如:这里。该goto走了,但你仍然可以使用的 : whatever语法...:是一种解析的评论了。

但我想要更多细节和上下文,包括对可移植性的讨论。

当然,如果有人有其他解决方案,那也很好。

另请参阅较早的问题如何在 shell 脚本中注释多行命令?.


从下面的讨论中获取信息。这`: this is a comment`只是一个命令替换。的输出: …

shell bash

42
推荐指数
3
解决办法
3万
查看次数

如何在 shell 脚本中注释多行命令?

当调用长的、需要大量切换的命令时,最好将它们写在 shell 脚本中。有没有一种简单的方法可以在这样的脚本中注释行?我尝试了以下方法,但都不起作用。

# the \ is also commented out, resulting in "command" and "--good-switch".
command \
  #--bad-switch \
  --good-switch \

# seems to send an extra argument to the command
command \
  \ #--bad-switch \
  --good-switch
Run Code Online (Sandbox Code Playgroud)

shell

23
推荐指数
1
解决办法
2万
查看次数

标签 统计

shell ×2

bash ×1