[英]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-terminal
和gnome-terminal
。
此外, xterm
(及其他)還支持設置窗口的標題,位置,大小(稱為幾何),顏色,字體以及許多其他功能。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.