2017-09-14 128 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'。 –