programing

bash에게 회선이 다음 줄에 계속됨을 알리는 방법

muds 2023. 4. 21. 21:32
반응형

bash에게 회선이 다음 줄에 계속됨을 알리는 방법

다른 프로그래머로부터 받은 bash 스크립트에서 일부 행의 길이가 80컬럼을 넘었습니다.행이 다음 행으로 계속됨을 나타내기 위해 행에 추가할 문자 또는 것은 무엇입니까?

문자가 백슬래시입니다.\

bash 매뉴얼:

백슬래시 문자 '\'는 다음 문자 읽기 및 줄 바꿈에서 특별한 의미를 제거하기 위해 사용할 수 있습니다.

일반적으로 행의 마지막에 백슬래시를 사용하여 명령어를 다음 행으로 진행할 수 있습니다.단, 암묵적으로 명령어를 계속하는 경우가 있습니다.즉, 회선이 토큰으로 끝나는 경우 명령어를 합법적으로 종료할 수 없습니다.이 경우 셸은 더 많은 데이터가 수신되고 있음을 인식하고 백슬래시를 생략할 수 있습니다.몇 가지 예:

# 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

\그 일을 해냅니다.@기욤의 대답과 @조지의 코멘트가 이 질문에 명쾌하게 답한다.이유를 설명하겠습니다.The backslash has to be the very last character before the end of line character.다음 명령을 고려하십시오.

mysql -uroot \- hlocalhost

뒤에 공백이 있으면\, 회선의 계속은 기능하지 않습니다.그 이유는\는 다음 문자의 특별한 의미(보이지 않는 줄바꿈 문자가 아닌 공백)를 삭제합니다.줄 바꿈 문자는 공백 뒤에 있습니다.\를 참조해 주세요.

언급URL : https://stackoverflow.com/questions/3871332/how-to-tell-bash-that-the-line-continues-on-the-next-line

반응형