Подтвердить что ты не робот

Как сообщить bash, что линия продолжается на следующей строке

В bash script я получил от другого программиста, некоторые строки превысили 80 столбцов в длину. Каков характер или предмет, который должен быть добавлен в строку, чтобы указать, что линия продолжается на следующей строке?

4b9b3361

Ответ 1

Символ - обратная косая черта \

В bash manual:

Символ обратной косой черты '\ может использоваться для удаления любого специального значения для следующего символа, прочитанного и для продолжения строки.

Ответ 2

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

# 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

Ответ 3

\ выполняет задание. Ответы @Guillaume и комментарий @George четко отвечают на этот вопрос. Здесь я объясняю, почему The backslash has to be the very last character before the end of line character. Рассмотрим эту команду:

   mysql -uroot \
   -hlocalhost      

Если после \ есть пробел, продолжение строки не будет работать. Причина в том, что \ удаляет особое значение для следующего символа, который является пространством, а не невидимым символом линии. Символ перевода строки после пробела \ в этом примере.