簡體   English   中英

Bash-在另一個與當前終端分開的終端中啟動命令的新實例

[英]Bash - Start a new instance of a command in another terminal seperate from your current terminal

我有一個簡單的bash腳本(test.sh)設置如下:

#!/bin/bash
args=("$@")
if [[ ( ${args[0]} = "check_capture" ) ]]; then
  watch -n 1 'ls -lag /home/user/capture0'
  watch -n 1 'ls -lag /home/user/capture1'
  watch -n 1 'ls -lag /home/user/capture2' 
  exit
fi

文件將不斷寫入這些目標位置,分別是捕獲0,捕獲1和捕獲3。我希望能夠在3個單獨的終端上使用ls命令連續監視這些目錄,並且一旦從該目錄運行了該腳本(test.sh),當前的終端,我希望它退出。

現在,它被每次等待阻止,我知道這是一個等待用戶輸入control-c的阻止bash命令。 有沒有辦法讓我在單獨的終端中執行3個watch命令,然后到達exit語句?

您可以在后台啟動終端的多個實例,每個實例都運行一個命令,如下所示:

if [[ ... ]]; then
    xterm -e 'watch -n 1 "ls -lag /home/user/capture0"' &
    xterm -e 'watch -n 1 "ls -lag /home/user/capture1"' &
    ...
    exit
fi

檢查man xterm

-e program [ arguments ... ]

此選項指定要在xterm窗口中運行的程序(及其命令行參數)。 如果在命令行上未指定-T和-n,則還將窗口標題和圖標名稱設置為正在執行的程序的基本名稱。 這必須是命令行上的最后一個選項。

相同的選項也適用於xfce-terminalgnome-terminal

此外, xterm (及其他)還支持設置窗口的標題,位置,大小(稱為幾何),顏色,字體以及許多其他功能。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM