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
'programing' 카테고리의 다른 글
사용자 매핑 섹션이 열려 있는 파일에서는 요청된 작업을 수행할 수 없습니다. (0) | 2023.04.21 |
---|---|
이 저장소에서 다른 Git 프로세스가 실행되고 있는 것 같습니다. (0) | 2023.04.21 |
Swashbuckle을 사용하여 WebAPI의 Swagger 문서에서 메서드를 생략하는 방법 (0) | 2023.04.21 |
PowerShell에서 콘솔 출력 억제 (0) | 2023.04.21 |
WPF 라벨액셀러레이터 키 비활성화(텍스트 밑줄 누락) (0) | 2023.04.21 |