我正在尝试在Debian机器上运行BASH脚本。如果我之前复制到隐藏.sh
文件的mac地址与机器的实际MAC地址匹配,那么脚本应该在每次启动时运行(所以我将/etc/init.d
文件放在.mac.txt
中)或者如果.mac.txt
文件存在而不是机器应该启动。如果其中一个条件不正确,则机器应该关闭。
这是我的剧本:
#!/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
文件则不然。我是在做一些逻辑或语法错误吗?
答案 0 :(得分:2)
略有修改版本:
#!/bin/bash
macfile='/root/.mac.txt'
mac=$(/sbin/ifconfig | grep 'eth0' | tr -s ' ' | cut -d ' ' -f5)
# Shut down if file does not exist
if [ ! -f $macfile ]; then
shutdown -h now
fi
# Verify MAC address against cached value
output=$(cat $macfile)
if [ "$mac" = "$output" ]; then
echo "Server will start"
else
shutdown -h now
fi
说明:
[
”和“]
”字符前后必须有空格$( ... )
语法而不是反引号