1
root=/dev/sdb1 rootfstype=ext2 rootdelay=10 rw console=ttyS0,115200 ... hostname=
위 내용은/proc/cmdline에 있습니다. "hostname ="다음에 값이 있는지 판단하고 싶습니다.을 사용하여/proc/cmdline의 호스트 이름에 값이 지정되었는지 확인하십시오.
e.g. root=/dev/sdb1 rootfstype=ext2 rootdelay=10 rw console=ttyS0,115200 ... hostname=tank
내 스크립트는 다음과 같습니다.
#! /bin/bash
cat /proc/cmdline | grep hostname=?* #to judge if there is a value after hostname
if [ $? -eq 1 ] #there is no value after hostname
then
echo "no hostname!"
echo `cat /proc/cpuinfo | grep model | cut -d "," -f 2 | \
tr "[A-Z]" "[a-z]"` > /etc/hostname
else
echo "succeed!"
fi
그러나 "cat/proc/cmdline | grep hostname =? *"은 내 expection으로 작동하지 않습니다.
예상 결과는 스크립트에 의해 호스트 이름 다음에 값이 있는지 여부를 판단 할 수 있다는 것입니다. 있다면/etc/hostname과 아무런 관계가 없습니다. 그렇지 않으면/etc/hostname에 값을 줄 것입니다.
PS : 나는 부팅의 단계에서 호스트 이름에 값을 제공 할 수 있습니다 :
setenv sdboot 'setenv bootargs root=/dev/sdb1 rootfstype=ext2 rootdelay=10 rw console=$consoledev,$baudrate $othbootargs hostname=$hostname;'
가 대단히 감사합니다! 그것은 작동합니다! 나는이 일에 대해 약 일주일을 보냈다. – tank
안녕 환영합니다 :) – konsolebox
안녕하세요. 나는 다른 질문을 할 필요가있다. 네가 나를 도울 수 있기를 바랍니다. hostname = 뒤에 값을 가져 오려면 어떻게해야합니까? 예 : hostname = tank, "tank"값을 얻고 싶습니다. – tank