當前位置: 首頁>>技術教程>>正文


使用用於終端應用程序的啟動器,程序完成後如何使終端保持打開狀態?

, ,

問題描述

我有一個從應用程序啟動器運行的終端命令。這很好用,但是有時命令會失敗,所以我希望終端保持打開狀態,以便查看結果。我怎樣才能做到這一點?

最佳方案

假設您的命令名為mycommand,我將更改啟動器以運行此命令:

gnome-terminal -e "mycommand|less"

如果您想要一個更永久,更清潔的解決方案,請打開gnome-terminal,轉到“編輯”,“配置文件”首選項,然後單擊“標題和命令”選項卡。將“命令退出時”選項更改為“保持終端打開”。

現在,當您執行命令時,它將在運行某些命令時使終端保​​持打開狀態。

編輯:如果您不太在意終端,則可以使用xterm的hold標誌:

xterm -e "mycommand" hold

次佳方案

您的啟動器正在運行腳本嗎?

在腳本末尾添加

read -p "Press any key to exit > " -n1 junk
echo 

然後您的腳本將等待,直到您選擇結束它。

第三種方案

在您的.desktop快捷方式中,使用此

Exec=gnome-terminal -x bash -c "YOUR_SCRIPT; exec $SHELL"

腳本完成後,Bash進程將用自身的新調用替換自身。

如果需要將帶引號的參數傳遞給腳本,則必須轉義引號:

Exec=gnome-terminal -x bash -c "YOUR_SCRIPT \"arg with spaces\"; exec $SHELL"

第四種方案

與其他答案略有不同的方法:運行命令,如果失敗,則生成一個shell。這樣,您不必將終端保持打開狀態(這不會區分命令是成功還是失敗),並且您可能會發現該Shell在失敗中特別有用。要關閉它,隻需使用Ctrl-D(EOF),”exit”,Alt-F4(或您的窗口管理器用來關閉窗口的任何東西),等等。

success-or-shell

#!/bin/sh
[ $# -eq 0 ] && {
  echo "$(basename $0): no command" >&2
  exit 1
}
"$@" || {
  echo "failed: $?"
  exec $SHELL
}

將此file放在某個位置,例如〜/bin,然後在啟動器中使用“ success-or-shell您的原始命令”。

參考資料

本文由Ubuntu問答整理, 博文地址: https://ubuntuqa.com/zh-tw/article/9916.html,未經允許,請勿轉載。