2017-09-14 121 views
0

我做了简单的脚本。文件名是sutest脚本文件:命令停止

#!/bin/bash 

cd ~/Downloads/redis-4.0.1/src 
./redis-server 

echo "uid is ${UID}" 
echo "user is ${USER}" 
echo "username is ${USERNAME}" 

我毁了脚本。 $ . sutest
但是,脚本代码停止在./redis-server。 所以我看不到回声消息。

enter image description here

我想做出这种脚本文件。我怎样才能做到这一点??

我将不胜感激您的帮助。


让我们来说更一般的情况。
myscript1文件执行过程像上面的redis-server一样。
另一个myscript2文件像上面的redis-server一样执行进程。 另一个myscript3文件像上面的redis-server一样执行进程。

如何同时运行三个脚本文件?
我想通过ssh连接做任务。
更糟糕的是,如果我不能使用screentmux

回答

0

在行

./redis-server & 

这个字符的末尾添加“&”字符允许在作业背景中运行,并且脚本继续。

+0

感谢您的回答。请阅读我的编辑。对于更一般的情况。 – newbie16

+0

添加'&'也适用?可能?你可以在你的例子中使用 – newbie16

+0

./myscript1&; ./myscript2&; ./myscript3&;和他们一起跑 – messiedo

0

只是做了回声第一:

cd ~/Downloads/redis-4.0.1/src 

echo "uid is ${UID}" 
echo "user is ${USER}" 
echo "username is ${USERNAME}" 

exec ./redis-server 

使用的exec一个小窍门(其中,如果你喜欢,你可以省略):它取代redis-server shell脚本,所以shell脚本不再一直运行。在没有exec的情况下,您最终会在shell脚本中等待redis-server完成,如果脚本不做任何事情,那么这是不必要的。

如果你不喜欢,由于某种原因,你可以保持原来的顺序:

cd ~/Downloads/redis-4.0.1/src 
./redis-server & # run in background 

echo "uid is ${UID}" 
echo "user is ${USER}" 
echo "username is ${USERNAME}" 

wait # optional 
+0

感谢您的回答。请阅读我的编辑。对于更一般的情况。 – newbie16

+0

添加“&”也适用?可能? – newbie16

+0

@ newbie16:你可以运行'thing1&thing2&thing3&; wait'。 –