A variável do nome do host não funciona

0

Estou em um Raspberry Pi usando o RPiTC (Raspberry Pi Thin Client).

Eu fiz um script com uma variável Hostname. Funcionou perfeitamente, mas hoje, quando lancei meu roteiro, vi algo estranho.

Minha variável de nome de host não funciona. Tenho certeza que é do meu script, eu tinha recarregar uma imagem do meu sistema operacional e é o mesmo. E quando eu pego meu roteiro antigo (é exatamente o mesmo roteiro), funcionou.

Este é o meu script:

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

Eu transferi meu script via tftp, talvez seja o problema? No passado eu tinha transferido o mesmo script com o protocolo tftp e funcionou ...

    
por Aragmond 30.01.2015 / 10:01

3 respostas

2

Você se refere a uma variável de nome de host. A construção que você está usando, ThisHost=$(hostname) , está chamando o comando hostname . Como o valor está vazio, torna-se uma questão de por que seu sistema não sabe seu nome. (Você pode confirmar isso digitando hostname por si mesmo e vendo que seu sistema não tem nome.)

De acordo com uma postagem no fórum RPi O nome do host deve ser definido a partir do arquivo /etc/hostname no momento da inicialização do arquivo /etc/init.d/hostname.sh . Então você provavelmente quer verificar o conteúdo do arquivo /etc/hostname ; ele deve conter uma única linha de texto que é o nome do host necessário.

Alternativamente, você pode definir o nome do host dinamicamente com um comando como hostname dillon (definindo o nome do host como "dillon"), mas isso permanecerá efetivo somente até a próxima reinicialização.

    
por 30.01.2015 / 11:08
2

Existe um " em falta no final da linha 5.

    
por 30.01.2015 / 13:25
0

Meu problema foi meu tftp. Agora eu uso ftp e funciona.

Quando eu estava no tftp meu arquivo foi convertido em "DOS".

Então, agora eu uso FTP e eu converto meu arquivo em "UNIX" quando eu estou pegando eles. Obrigado pela sua ajuda.

    
por 02.02.2015 / 14:14