在脚本中使用nohup
时遇到问题。如果未使用nohup
,则脚本可以正常工作
开始这个过程。运行时收到以下错误:
./iper.sh: line 16: syntax error near unexpected token `;'
./iper.sh: line 16: ` [Yy]*) nohup iperf -s > /dev/null 2>&1&; break;;'
以下是完整的脚本:
#!/bin/bash
echo "Checking to see if Iperf is running:"
sleep 2
ps cax | grep iperf > /dev/null
if [ $? -eq 0 ]; then
echo "Iperf is running."
else
echo "Iperf is not running."
fi
sleep 2
while true; do
read -p "Press Y to start Iperf or N to exit: " yn
case $yn in
[Yy]*) nohup iperf -s > /dev/null 2>&1&; break;;
[Nn]*) exit;;
esac
done
发生了什么事?
答案 0 :(得分:3)
如果您要使用&
终止命令将其置于后台,请不要使用其他分号;
终止该命令:
[Yy]*) nohup iperf -s > /dev/null 2>&1& break;;
以前
2>&1&;
答案 1 :(得分:0)
我猜您在&
2>&1&
将其更改为2>&1
答案 2 :(得分:0)
检查以下脚本
#!/bin/bash
echo "Checking to see if Iperf is running:"
sleep 1
if `pgrep iperf >/dev/null 2>&1`
then
echo "iperf Running"
else
echo "iperf not Running"
fi
sleep 1
while true; do
echo "Do you wanna start Iperf (y/n)"
read -n 1 ch; p=`echo ${ch} | tr A-Z a-z`
case $p in
y)nohup iperf -s > /dev/null 2>&1 break;;
n)exit;;
*)continue;
esac
done
执行此操作时,等待用户按* ctrl + c *出来
如果您使用2>& 1&(用于继续而不受用户干扰),允许用户进行其他工作
在y)条件下替换下面的行
nohup iperf -s > /dev/null 2>&1& break;;