myconfig.conf
BASH를 사용 하는 파일에 여러 줄을 쓰려면 어떻게 해야합니까?
#!/bin/bash
kernel="2.6.39";
distro="xyz";
echo <<< EOL
line 1, ${kernel}
line 2,
line 3, ${distro}
line 4
line ...
EOL >> /etc/myconfig.conf;
cat /etc/myconfig.conf;
myconfig.conf
BASH를 사용 하는 파일에 여러 줄을 쓰려면 어떻게 해야합니까?
#!/bin/bash
kernel="2.6.39";
distro="xyz";
echo <<< EOL
line 1, ${kernel}
line 2,
line 3, ${distro}
line 4
line ...
EOL >> /etc/myconfig.conf;
cat /etc/myconfig.conf;
답변:
구문 ( <<<
) 및 사용 된 명령 ( echo
)이 잘못되었습니다.
올바른 것입니다 :
#!/bin/bash
kernel="2.6.39"
distro="xyz"
cat >/etc/myconfig.conf <<EOL
line 1, ${kernel}
line 2,
line 3, ${distro}
line 4 line
...
EOL
cat /etc/myconfig.conf
이 구성은 Here Document 라고 하며 Bash 매뉴얼 페이지에서 찾을 수 있습니다 man --pager='less -p "\s*Here Documents"' bash
.
EOF
. 그렇지 않으면 인식되지 않으며 예기치 않은 파일 끝 오류가 발생합니다.
heredoc 솔루션이 가장 일반적인 방법입니다. 다른 일반적인 솔루션은 다음과 같습니다.
'line 1,' "$ {kernel}" '에코 2 호선 3 행, ' "$ {distro}"' 라인 4 '> /etc/myconfig.conf
과
exec 3> & 1 # 현재 표준 출력 저장 exec> /etc/myconfig.conf 에코 라인 1, $ {kernel} 에코 라인 2, 에코 라인 3, $ {distro} ... exec 1> & 3 # 표준 출력 복원
printf
더 흥미로운 변형을 소개하는 것도 있습니다 .