我在寻找解答这个问题的方法,但没有找到。
我写了一个简单的脚本来进行服务器的初始设置,并希望在完成后将其从根目录中删除/取消链接。我尝试了很多谷歌上找到的解决方案(例如/bin/rm $test.sh),但是脚本似乎总是留在原地。这种情况可能吗?以下是我目前的脚本。
#! /bin/bash
cd /root/
wget -r -nH -np --cut-dirs=1 http://myhost.com/install/scripts/
rm -f index.html* *.gif */index.html* */*.gif robots.txt
ls -al /root/
if [ -d /usr/local/psa ]
then
echo plesk > /root/bin/INST_SERVER_TYPE.txt
chmod 775 /root/bin/*
/root/bin/setting_server_ve.sh
rm -rf /root/etc | rm -rf /root/bin | rm -rf /root/log | rm -rf /root/old
sed -i "75s/false/true/" /etc/permissions/jail.conf
exit 1;
elif [ -d /var/webmin ]
then
echo webmin > /root/bin/INST_SERVER_TYPE.txt
chmod 775 /root/bin/*
/root/bin/setting_server_ve.sh
rm -rf /root/etc | rm -rf /root/bin | rm -rf /root/log | rm -rf /root/old
sed -i "67s/false/true/" /etc/permissions/jail.conf
break
exit 1;
else
echo no-gui > /root/bin/INST_SERVER_TYPE.txt
chmod 775 /root/bin/*
/root/bin/setting_server_ve.sh
rm -rf /root/etc | rm -rf /root/bin | rm -rf /root/log | rm -rf /root/old
sed -i "67s/false/true/" /etc/permissions/jail.conf
break
exit 1;
fi
rm
替换为${RM:-/bin/rm}
。你的代码将rm
的输出传输到下一个rm
命令中,这很奇怪;rm
不会读取标准输入(除非进行交互),也不会写入标准输出。这种重复是不好的。而且我绝不希望你删除我的机器上/root
目录下的内容。此外,请检查cd /root/
是否有效;cd /root/ || exit 1
。 - Jonathan Lefflerssh host < script.sh
而不需要复制它。请注意,此翻译为简洁性而设计,并保持原意,未做解释或修改。 - l0b0