호스트 이름 변수가 작동하지 않습니다

호스트 이름 변수가 작동하지 않습니다

저는 RPiTC(Raspberry Pi Thin Client)를 사용하는 Raspberry Pi를 사용하고 있습니다.

호스트 이름 변수를 사용하여 스크립트를 만들었습니다. 잘 돌아가고 있었는데 오늘 대본을 시작했을 때 이상한 점을 발견했습니다.

내 호스트 이름 변수가 작동하지 않습니다. 내 스크립트에서 나온 것이라고 확신합니다. 내 OS 이미지를 다시 로드했는데 똑같습니다. 이전 스크립트(정확히 동일한 스크립트)를 사용하면 작동합니다.

이것은 내 스크립트입니다.

do_start()
#Creating and checking my Hostname variable
ThisHost=$(hostname)
date=$(date)
echo "This is my hostname check:"
echo $ThisHost

#This will find the file in the /home/rpitc folder and save it to a variable:
dest=$(find /home/rpitc/ -name "$ThisHost.ica")
echo "This is my dest check:"
echo $dest
findfile="${dest##*/}"
echo "This is my findfile check with extension:"
echo $findfile
echo "This is my findfile check WITHOUT extension:"
echo "${findfile%.*}"

#If check to see if my hostname $ThisHost matches the file $findfile:
if test "$ThisHost" = "${findfile%.*}"

then
echo "Worked!"
echo $ThisHost "is correct. Connected the" $date >> /home/rpitc/skelog
exit 0
else
ThisHost=$(hostname)
tftp 10.1.0.203 << fin
get /test/${ThisHost}.ica
quit
fin
if [ -s ${ThisHost}.ica ]
then
exec iceweasel /home/rpitc/${ThisHost}.ica
else
zenity --error --text="Your hostname is incorrect."
rm /home/rpitc/${ThisHost}.ica
fi
fi

내 스크립트를 tftp를 통해 전송했습니다. 그게 문제일까요? 과거에 tftp 프로토콜을 사용하여 동일한 스크립트를 전송했는데 작동했습니다.

답변1

호스트 이름 변수를 참조하고 있습니다. 사용 중인 구문이 명령을 ThisHost=$(hostname)호출하고 있습니다 hostname. 값이 비어 있으므로 시스템이 해당 이름을 모르는 이유에 대한 의문이 생깁니다. ( hostname직접 입력하고 시스템에 이름이 없는지 확인하여 이를 확인할 수 있습니다.)

~에 따르면RPi 포럼 게시물/etc/hostname호스트 이름은 부팅 시 파일에서 설정되어야 합니다 /etc/init.d/hostname.sh. 따라서 파일 내용을 확인하고 싶을 수도 있습니다 /etc/hostname. 파일 내용에는 원하는 호스트 이름이 포함되어 있어야 합니다.

또는 명령 hostname dillon(예: 호스트 이름을 "dillon"으로 설정)을 사용하여 호스트 이름을 동적으로 설정할 수 있지만 이는 다음에 재부팅할 때까지만 적용됩니다.

답변2

"5행 끝에 하나가 빠졌네요.

답변3

내 문제는 내 TFTP입니다. 이제 ftp를 사용하는데 작동합니다.

tftp를 사용하면 내 파일이 "DOS"로 변환됩니다.

그래서 이제는 FTP를 사용하고 파일을 얻을 때 "UNIX"로 변환합니다. 당신의 도움을 주셔서 감사합니다.

관련 정보