제시된대로 여러 줄을 파일로 에코


2

그래서 한 시점에서 여러 줄을 파일에 쓰는 설치 스크립트가 있습니다. 또 다른 스크립트입니다. 나는 그것을 에코하고 싶다 :

cat > $BASEDIR/start.sh << EndOfMessage
 cd $BASEDIR/
 VER=$(ls | grep --exclude-dir="Spigot" "spigot" | sort -nr)
 java -Xmx1024M -XX:MaxPermSize=128M -jar "$VER" -o true 
 sleep 5
 echo "Restarting..." && bash $BASEDIR/start.sh
EndOfMessage

그러나 "$ VAR"을 공백으로 바꾸고 다른 줄은 생략합니다. 거기에 제시된 모든 것을 정확하게 반향 할 수있는 방법이 있습니까? 나는 그것이 같은 스크립트에있는 것을 선호합니다.

답변:


4

여기 문서에서 모든 달러 기호를 이스케이프 처리하거나 문서 끝 문자열을 인용하여 문서 내 모든 확장을 해제 할 수 있습니다.

cat > $BASEDIR/start.sh << 'EndOfMessage'  # Quotes prevent expansions in the here-doc
 cd $BASEDIR/
 VER=$(ls | grep --exclude-dir="Spigot" "spigot" | sort -nr)
 java -Xmx1024M -XX:MaxPermSize=128M -jar "$VER" -o true 
 sleep 5
 echo "Restarting..." && bash $BASEDIR/start.sh
EndOfMessage
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.