कई टैब के साथ सूक्ति टर्मिनल खोलें और हर टैब में कुछ कमांड निष्पादित करें


12

यह वही है जो मैं पूरा करना चाहता हूं:

  1. मैं इसमें पांच टैब के साथ एक गनोम टर्मिनल खोलना चाहता हूं
  2. मैं प्रत्येक टैब में स्वचालित रूप से
    पहले टैब में कमांड (5 - 10 कमांड) सेट करना चाहता हूं : क्लियर-केस व्यू सेट करें और उसके बाद एक या एक से अधिक कमांड निष्पादित करें
    दूसरा टैब: एक सर्वर में लॉग इन करेगा और कुछ कमांड को निष्पादित करेगा
    तीसरा टैब: केवल कुछ आदेशों पर अमल करेंगे

gnome-terminal --geometry=260x25-0+0 --tab -e "csh -c \"ct setview myViewName; cal\"" –tab --tab --tab (ठीक काम करता है, दृश्य सेट है लेकिन उसके बाद निष्पादित कोई कमांड नहीं)

मैंने इसके बजाय इसे इस तरह से करने की कोशिश की है और नीचे की स्क्रिप्ट में इसे चला रहा हूं:

gnome-terminal --geometry 125x18-0-26 --tab -t "some title" -e /home/ekido/Desktop/MyScripts/myScript

#!/usr/bin/expect
exec gnome-terminal --geometry 125x49-0+81 –tab
spawn ssh usert@server
expect "password"
send "*******\r"
expect "user@server100:~>"
send “some command\r"
expect "user@server100:~>"
send “some command"
interact 

यदि मैं exec gnome-terminal --geometry 125x49-0+81 –tabउदाहरण से पंक्तियों को हटाता हूं और किसी अन्य फ़ाइल से स्क्रिप्ट को कॉल करता हूं, तो यह ठीक काम करता है - मैं सर्वर पर लॉग इन हो जाता हूं और सभी को निष्पादित किया जाता है। किसी को भी इसे हल करने में मेरी मदद कर सकते हैं?

एक स्क्रिप्ट लिखने के लिए जिसे मैं हर टैब के लिए कहता हूं वह विकल्प नहीं है, क्योंकि मेरे पास अंत में प्रत्येक में 5-7 टैब के साथ 5 टर्मिनल होंगे, और इसका मतलब है कि लिखने के लिए 25 से 30 स्क्रिप्ट होगी (लागत से अधिक मदद करता है) मेरी समस्या में)।


ऐसा नहीं है कि मैं गनोम टर्मिनल का विशेषज्ञ हूं, लेकिन आपके द्वारा बनाए गए टैब को एक प्रोफ़ाइल में सहेजा जाना चाहिए। प्रोफाइल बनाने के बाद, मुझे विश्वास है कि आप इसे स्क्रिप्ट कर सकते हैं। GNOME सहायता में प्रोफाइल प्रबंधित करें देखें ।
eyoung100

जवाबों:


11

यह मेरी मशीन पर काम करने लगता है:

gnome-terminal --geometry=260x25-0+0 --tab -e "bash -c 'date; read -n1'" --tab -e "bash -c 'echo meow; read -n1' " --tab --tab

कृपया ध्यान दें, जैसे ही -e द्वारा निष्पादित प्रक्रियाएं चल रही हैं, वे समाप्त हो जाएंगे। इस मामले में, बैश लोड किया गया है, जो भी आदेश आप इसे पास करते हैं, और तुरंत मौजूद है। मैंने उपयोगकर्ता के इनपुट की प्रतीक्षा करने के लिए रीड स्टेटमेंट में रखा है। इस तरह से वे टैब तब तक बंद नहीं होंगे जब तक आप एक कुंजी नहीं दबाते, बस आप इसे इस उदाहरण में देख सकते हैं। उनके बिना, ऐसा लगेगा जैसे केवल दो टैब खुल गए हैं, क्योंकि अन्य दो निष्पादित होंगे और बहुत जल्दी बंद हो जाएंगे।


आपके उत्तर के लिए धन्यवाद। ज़रूर, मुझे एक कमांड (इस मामले में "तारीख") के आउटपुट को जब्त करने के लिए मिलता है, लेकिन मैं कई कमांड निष्पादित करना चाहता हूं, आउटपुट को जब्त करने में सक्षम हो सकता हूं और फिर उसी टैब में मैन्युअल रूप से नए कमांड लिखना जारी रखूंगा।
आठ

3

चूँकि कमांड पूरा होने के बाद बैश बंद हो जाता है, आप bashएक इंटरेक्टिव शेल प्राप्त करने के लिए अपने कमांड के बाद एक और उदाहरण कॉल कर सकते हैं :

gnome-terminal  --tab -e "bash -c 'ps -ef; bash'" --tab -e "bash -c 'ls; bash'" --tab -e "bash -c 'top -n 1; bash'"

ऐसा लगता है कि अगर मैं टर्मिनल बंद कर देता हूं तो अंतर्निहित प्रक्रियाएं अपने आप बंद नहीं होती हैं, तो क्या इसका भी कोई हल है? मैं पूरी खिड़की को बंद करना चाहूंगा और उनकी प्रक्रियाओं के साथ सभी टैब को एक मारना चाहिए
ब्लब

2

नीचे स्क्रिप्ट के रूप में सहेजें

#!/usr/bin/env bash

me=$(realpath $0)

commands=(
"echo"
"ls -l && echo 'yes'"
"top"
"ps"
)
len=${#commands[@]}

if [ $# -eq 0 ];then
    num=$len
else
    num=$1
fi

n=$((len-num))
command=${commands[$n]}
num=$((num-1))

xdotool key ctrl+shift+t

if [ $num -gt -1 ]; then
    sleep 1; xdotool type --delay 1 --clearmodifiers "$me $num; ${command}"; xdotool key Return;
fi

script.sh को $ PATH में जोड़ें और फिर चलाएं

gnome-terminal -x script.sh

देखें ओपन GNOME टर्मिनल कमांड लाइन का उपयोग कर में एक नया टैब


इसके अलावा सब कुछ विफल रहा। अब, मैं कुछ टैब को बिना कमांड के खोलना चाहूंगा। उदाहरण के लिए, मैं दस टैब्स खोलना चाहूंगा, लेकिन तीन अगर वे कुछ कमांड चला सकते हैं जैसे कि htop ..
nyxee
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.