私は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」に変換します。ご協力ありがとうございます。