我在使用 RPiTC(Raspberry Pi Thin Client)的 Raspberry Pi 上。
我制作了一个带有主机名变量的脚本。它运行得很好,但今天当我启动脚本时,我看到了一些奇怪的东西。
我的主机名变量不起作用。我确信它来自我的脚本,我已经重新加载了我的操作系统的映像,它是相同的。当我使用旧脚本(完全相同的脚本)时,它就起作用了。
这是我的脚本:
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”中转换文件。感谢您的帮助。