我試圖在Debian機器上運行BASH腳本。如果先前複製到隱藏的.mac.txt
文件的mac地址與機器的實際MAC地址匹配,或者存在.mac.txt
文件,則該腳本應在每次啓動時運行(因此我將.sh
文件放入/etc/init.d
)。如果其中一個條件不成立,機器應該關機。Bash檢查啓動時是否存在文件
這裏是我的腳本:
#!/bin/bash
output="'cat /root/.mac.txt'";
mac="'/sbin/ifconfig | grep 'eth0' | tr -s ' ' | cut -d ' ' -f5'"
if ["$mac" = "$output" ] || [ -f /root/.mac.txt]
then
echo "Server will start"
else
shutdown -h now
fi
如果MAC地址不正確,機器關閉,但如果我刪除.mac.txt
文件沒有。我在做一些邏輯或語法錯誤?
除了FatalError關於'['和']' - '的空格問題,我不理解您的邏輯。如果它們相同,則該文件必須存在。那麼爲什麼要檢查它們是否相等呢?爲什麼不檢查文件是否存在? 2.你似乎對'''和'\'混淆了。例如,語句'output =''cay /root/.mac.txt'「'會將變量'$ output'設置爲字符串''cay/root/.mac.txt'',而不是運行任何類型的命令。 3.你的意思是'貓'而不是'cay'嗎? – ruakh 2012-07-13 18:56:05
腳本不會在啓動時自動運行,因爲它在'/ etc/init.d'中。 – chepner 2012-07-13 19:14:25
我想我想要做的是:首先我想檢查.mac.txt文件是否存在。如果它不存在關機。如果存在,則應檢查MAC地址是否匹配。如果他們沒有關閉機器..如果他們匹配比繼續啓動 – Aaron 2012-07-13 19:36:00