Shell

如何打開終端並自動執行命令?

  • May 17, 2019

我在終端模擬器中。我想打開另一個終端來執行指定的命令。

gnome-terminal -e "zsh -c 'pwd; zsh;'"

在另一個終端中連續且成功地pwd執行。zsh終止後pwd,zsh 啟動,我可以在第二個終端實例中執行其他命令。

但是,當啟動另一個應用程序而不是 時pwd,我無法正確結束該長時間執行的程序。

例如,當我Ctrl``C在下面的命令中鍵入退出 node.js 伺服器時,它也會關閉終端。似乎是通過選項 SIGINT傳遞給第一個。zsh``-c

gnome-terminal -e "zsh -c 'node server.js; zsh;'"

我怎樣才能解決這個問題?

我在bash中試過這個

如果它不起作用,請提前道歉。

我編寫了一個名為 userInput.sh 的 bash 腳本——它等待使用者輸入並結束。

`

## trap ctrl-c and call ctrl_c()

trap ctrl_c INT

function ctrl_c() {

echo "** Trapped CTRL-C"

exit
}

read -p "Press any key to continue... " -n1 -s 

現在,當我執行並按 clt+c

gnome-terminal -e "bash -c './userInput.sh; bash;'"

userInput.sh 退出,我仍然有 bash 提示符。

現在我認為在您的情況下,您無需等待使用者輸入,而是執行 node server.js 之類的

## trap ctrl-c and call ctrl_c()

trap ctrl_c INT

function ctrl_c() {

echo "** Trapped CTRL-C"

exit
}

node server.js

假設您將腳本命名為“runNodeJs.sh”,那麼命令將是

gnome-terminal -e "bash -c './runNodeJs.sh; bash;'"

引用自:https://unix.stackexchange.com/questions/519319