我有一个shell脚本,我想在后台运行我的可执行文件“server”的两个实例。但是,当我运行脚本时,我得到错误“读取:缺少参数”。删除“&”时不会发生此问题在后台运行,但随后会产生不良行为。
服务器可执行文件后面是成对的地址和端口,但我删除了检查正确数量的参数的任何代码。抛出的错误在哪里,我怎样才能让这个脚本工作?
#Location of executable.
SERVER=server
SERVER_NAME=`echo $SERVER | sed 's#.*/\(.*\)#\1#g'`
$SERVER localhost 4111 localhost 4222 &
$SERVER localhost 4222 localhost 4111 &
echo "Press ENTER to quit"
read
pkill $SERVER_NAME
答案 0 :(得分:3)
read
期待其后的变量读入:
read var1
如果您只是使用read
来阻止执行脚本,直到您收到用户的某些回复,请使用上述建议。
此外,这可能不是您打算做的事情:
SERVER=server
SERVER_NAME=`echo $SERVER | sed 's#.*/\(.*\)#\1#g'`
因为在执行之后,SERVER_NAME
将只是字符串server
如果server
是您环境中的命令,那么您可能要做的是:
SERVER_NAME=$(server | sed 's#.*/\(.*\)#\1#g'`)