반응형
변수에 명령 출력을 저장할 때 줄 바꿈을 유지하는 방법은 무엇입니까?
Linux에서 bash 쉘을 사용하고 있습니다.이 간단한 스크립트가 있습니다.
#!/bin/bash
TEMP=`sed -n '/'"Starting deployment of"'/,/'"Failed to start context"'/p' "/usr/java/jboss/standalone/log/server.log" | tac | awk '/'"Starting deployment of"'/ {print;exit} 1' | tac`
echo $TEMP
그러나 이 스크립트를 실행하면
./temp.sh
캐리지 리턴/새 라인 없이 모든 출력이 인쇄됩니다.출력을 $TEMP에 저장하는 방법인지 echo 명령어 자체인지 확실하지 않습니다.
명령어의 출력을 변수에 저장하고 줄 바꿈/캐리지 리턴을 보존하려면 어떻게 해야 합니까?
변수를 인용합니다.그 이유는 다음과 같습니다.
$ f="fafafda
> adffd
> adfadf
> adfafd
> afd"
$ echo $f
fafafda adffd adfadf adfafd afd
$ echo "$f"
fafafda
adffd
adfadf
adfafd
afd
따옴표가 없으면 셸이 대체됩니다.$TEMP(그 중 하나가 줄바꿈) 문자를 포함합니다.그 후 호출하기 전에echo셸은 이 문자열을 여러 개의 인수로 분할합니다.Internal Field Separator(IFS) 및 그 결과 생성된 인수 목록을echo디폴트로는IFS공백(스페이스, 탭 및 줄바꿈)으로 설정되어 있기 때문에 셸은 이 옵션을 잘라냅니다.$TEMP새로운 행은 공백과 마찬가지로 구분자로 간주되기 때문에 인수에 문자열로 입력해도 표시되지 않습니다.
저도 같은 문제에 부딪혔어요. 견적이 도움이 될 겁니다.
ubuntu@host:~/apps$ apps="abc
> def"
ubuntu@host:~/apps$ echo $apps
abc def
ubuntu@host:~/apps$ echo "$apps"
abc
def
언급URL : https://stackoverflow.com/questions/22101778/how-to-preserve-line-breaks-when-storing-command-output-to-a-variable
반응형
'programing' 카테고리의 다른 글
| 특정 시간/날짜까지 sleep (0) | 2023.04.11 |
|---|---|
| wpf 유형 이름 'App'이 유형에 없습니다.Main Window 이름 변경 후 발생 (0) | 2023.04.11 |
| Excel: 셀 문자열 값의 일부를 바꿉니다. (0) | 2023.04.11 |
| Flutter에서 위젯에 테두리를 추가하려면 어떻게 해야 합니까? (0) | 2023.04.11 |
| -z는 Bash에서 무엇을 의미합니까? (0) | 2023.04.11 |