在我从另一个程序员那里得到的bash脚本中,有些行的长度超过了80列。为了表明该行在下一行继续,要添加到该行的字符或事物是什么?
答案 0 :(得分:98)
答案 1 :(得分:28)
通常,您可以在一行的末尾使用反斜杠,以便命令继续到下一行。但是,有些情况下隐含地继续命令,即当行以令牌结束而不是合法地终止命令时。在这种情况下,shell知道会有更多内容,并且可以省略反斜杠。一些例子:
# In general
$ echo "foo" \
> "bar"
foo bar
# Pipes
$ echo foo |
> cat
foo
# && and ||
$ echo foo &&
> echo bar
foo
bar
$ false ||
> echo bar
bar
不同但相关的是引号内隐含的延续。在这种情况下,没有反斜杠,您只需在字符串中添加换行符。
$ x="foo
> bar"
$ echo "$x"
foo
bar
使用反斜杠,您再次将逻辑行拆分为多个逻辑行。
$ x="foo\
> bar"
$ echo "$x"
foobar
答案 2 :(得分:14)
The backslash has to be the very last character before the end of line character.
完成这项工作。 @Guillaume的回答和@George的评论清楚地回答了这个问题。在这里,我解释了为什么\
考虑这个命令:
mysql -uroot \ -hlocalhost
如果\
之后有空格,则续行不起作用。原因是\
删除了下一个字符的特殊含义,即下一个字符不是不可见换行符。换行符在此示例中位于空格$('#toggle').on('click', function() {
$('[data-toggle="popover"]').popover('toggle');
});
之后。