다른 프로그래머로부터받은 bash 스크립트에서 일부 행의 길이가 80 열을 초과했습니다. 행이 다음 행에서 계속됨을 표시하기 위해 행에 추가 할 문자 또는 사물은 무엇입니까?
답변
답변
일반적으로 명령이 다음 행으로 계속되도록하려면 행 끝에 백 슬래시를 사용할 수 있습니다. 그러나 명령이 묵시적으로 계속되는 경우가 있습니다. 즉, 행이 토큰으로 끝날 때 합법적으로 명령을 종료 할 수없는 경우입니다. 이 경우 셸은 더 많은 정보가 있음을 알고 백 슬래시를 생략 할 수 있습니다. 몇 가지 예 :
# 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
답변
\
일을합니다. @Guillaume의 답변과 @George의 의견은이 질문에 명확하게 대답합니다. 다음은 The backslash has to be the very last character before the end of line character.
이 명령을 고려하는 이유를 설명합니다 .
mysql -uroot \ -hlocalhost
뒤에 공백이 있으면 \
줄 연속이 작동하지 않습니다. 그 이유는 \
보이지 않는 줄 바꿈 문자가 아닌 공백 인 다음 문자에 대한 특별한 의미를 제거하기 때문입니다 . 줄 바꿈 문자는 \
이 예에서가 아닌 공백 뒤에 있습니다.