log_mon.sh의 HOST 변수
513
작성한 질문수 21
안녕하세요 질문드립니다.
먼저 telegram_example.sh의 코드입니다(선생님과 같습니다)

그리고 DIR, HOST변수 선언을 마친 log_mon.sh에서
./log_mon.sh 실행 시,
아래와 같이 []로 표시되고 hostname을 받아오지 못했는데요

log_mon.sh내 코드 중, telegram_example.sh 쉘 스크립트를 실행하는 라인에서 ${HOST} 대신 ${HOSTNAME}로 변수를 불러오고 HOST 변수 선언 라인을 주석처리 하니, 아래와 같이 정상적으로 hostname [cent1]을 불러왔습니다.


위 사진은 log_mon.sh 내 HOST 변수 선언 라인을 주석처리하고 ${HOSTNAME}로 호출 할 때 ./log_mon.sh 결과입니다
전체 코드와 출력결과 설명이 길었습니다,
제 질문은
log_mon.sh 내 hostname을 받아오는 HOST 변수를 주석처리하고 ${HOSTNAME}이라는 선언하지 않았던 변수를 호출했을 때 정상적으로 cent1을 출력했는데, 이 ${HOSTNAME}는 어딜 보고cent1을 받아온 걸까요?
답변 3
0
강병현님 안녕하세요.
강의자료는 $(hostname) 인데 실습해보신건 ${hostname} 인 것 같네요.
소괄호를 중괄호로 입력해서 이런 문제가 발생한것 같아요.
소괄호는 괄호안의 명령어를 실행한다는 의미이고 중괄호는 변수명으로 인식합니다.
HOSTNAME이라는 변수는 리눅스에서 기본으로 제공해주는 환경변수이기 때문에 사용할 수 있는 것입니다.
제가 log_mon.sh 스크립트에서 사용한 것은 hostname이라는 명령어를 실행해서 그 값을 가져오게 만드는 것이었어요.
hostname을 실행하면 echo ${HOSTNAME} 과 같은 결과를 가져오므로 어느 것을 사용하셔도 무방합니다.
0
log_mon.sh에 HOST 변수 선언을 할때 소문자가 아닌 대문자로 변경하면 정상 작동합니다.
HOST="${hostname}" (강의자료)
HOST="${HOSTNAME}" (수정)
0
안녕하세요 아나더님! :)
열심히 해주고 계시네요!!!! 너무 기쁩니다 ㅠ
답변드릴게요!
HOSTNAME 을 사용할 수 있는 이유는 리눅스에서 기본으로 제공하는 변수이기 때문입니다.
터미널에서 echo ${HOSTNAME} 을 입력해 보시면 등록한 hostname을 출력합니다.
텔레그램 봇 메세지 전송기능을 여러 서버에 이용하려면
0
169
2
컨테이너에서 다른 컨테이너 접속시
0
126
2
실습 주소에 172.18.1.91를 접속하니 접속이 되지 않습니다
0
136
2
atlassian 접속이 안됩니다
0
210
2
docker 컨테이너로 가상환경 구축 시 init.sh 관련 에러 로그
0
255
2
백업 쉘스크립트 3 질문있어요
0
122
1
telegram 문자보내기 오류
0
227
1
2-2 초기 셋팅 질문드려요!
0
342
3
Linux top 커맨드에 대한 질문
0
158
1
2-0. 진행 후 웹사이트 접속이 안됩니다.
0
317
2
커리큘럼-강의교안
0
320
3
web_backup.sh 실행 시 mount.nfs No host to mount
0
375
1
환경설정 압축파일 해제 불가
0
320
1
SecureCRT 접속 오류
0
842
1
강의에서 로그를 쌓게 하는 vws.tmpcompany.com 이제 접속이 안되는건가요?
0
390
1
강의에서 보여주시는 컨플이나 자료 따로 있을까요?
0
329
1
vagrant up 명령어 실행시
1
385
1
vagrant ssh 접속 에러
0
561
2
서버 구축시 문제 발생
0
453
2
버츄얼박스 설치에러
0
314
1
스크립트 실행 결과 미표시
0
310
1
맥북 지원
0
378
1
[해결방법] 네트워크 어댑터 에러 메시지
1
408
2
DB 백업 스크립트 실행 오류
0
451
1





