$var가 포함된 텍스트를 bash 파일에 쓰는 방법은 무엇입니까? [복사]

$var가 포함된 텍스트를 bash 파일에 쓰는 방법은 무엇입니까? [복사]

case $1 inbash 파일을 작성하는 데 문제가 있습니다. 나는 전에 시도했다

cat <<EOT > /etc/init.d/startup.sh
#!/bin/bash

PATH=/sbin:/bin:/usr/sbin:/usr/bin

case "$1" in
    start)
        bash /root/install.sh >> /root/installation_log.txt 2>&1
        ;;
    stop|restart|reload)
        ;;
esac
EOT

startup.sh하지만 문제는 모든 내용을 but $1라인 에 쓴다는 것입니다.

case "$1" in  

~이 되다

case "" in 

수술 후.
무엇을 해야 할까요?

답변1

어떤 방식으로든 연산자 EOF에 전달된 종결자를 참조합니다 .<<

cat << 'EOT' > file
$var
EOT

또는

cat << \EOT
cat << EO\T
cat << "E"'O'T
cat << ""EOT

이것은문서화되고 표준적인 방식이 문서 내에서 어떤 종류의 확장도 발생하지 않도록 합니다.

답변2

가변 인플레이션을 EOT방지하기 위해 첫 번째를 변경하십시오.'EOT'

예를 들어

cat <<'EOT' > /etc/init.d/startup.sh

관련 정보