![이 문서에 변수를 어떻게 포함할 수 있나요?](https://linux55.com/image/46506/%EC%9D%B4%20%EB%AC%B8%EC%84%9C%EC%97%90%20%EB%B3%80%EC%88%98%EB%A5%BC%20%EC%96%B4%EB%96%BB%EA%B2%8C%20%ED%8F%AC%ED%95%A8%ED%95%A0%20%EC%88%98%20%EC%9E%88%EB%82%98%EC%9A%94%3F.png)
어떤 상황에서 사용자 정의 전역 변수를 사용하려고 하는데 cat <<eof>> filename
작동하지 않습니다. 나는 이 포럼의 간단한 예 cat << eof
에서 내가 원하는 것을 찾았고 , 그 결과 여기로 연결되었습니다.http://www.tldp.org/LDP/abs/html/here-docs.html. 하지만 저는 아래와 같은 것을 원하고 다음을 추가 합니다 >>
.filename
아니요일하다. ):
#!/bin/bash
#after testing I will define this in .bashrc or somewhere?
set IP_ADDR = "123.123.123.123"
#empty the file in case there is something in it
truncate -s 0 sample.conf
# open a file and append
cat <<EOF >> sample.conf
This is my sample config file
Server IP = $IP_ADDR
this is the last line of my sample config file
EOF
#print the file to verify
cat sample.conf
그러면 빈 문자열이 생성됩니다.Server IP =
sed
누락된 변수 값을 제외하고 파일을 작성한 경우에는 작동하지만 IP 주소(또는 기타 항목)를 리터럴 문자열로 쉽게 사용할 수는 없습니다.
또한 스크립트를 실행할 때 명령줄 인수로 사용할 리터럴 문자열이 없을 수도 있습니다. $1
코드 블록 내에서 작동합니다 cat << eof >> filename
. 나는 그것을 증명했다. 하지만 이 스크립트를 실행하면 바로 값에 액세스할 수 없습니다...
답변1
set IP_ADDR = "123.123.123.123"
부정확하다. 다음을 수행해야 합니다.
IP_ADDR="123.123.123.123"
(공백 없음).