একাধিক ট্যাব সহ টার্মিনাল খুলুন এবং অ্যাপ্লিকেশন কার্যকর করুন


16

আমি লিনাক্স শেল স্ক্রিপ্টিংয়ে নতুন। আমি একটি শেল স্ক্রিপ্ট লিখতে চাই যা একাধিক ট্যাব সহ টার্মিনাল খুলবে; এটি প্রতিটি ট্যাবে rtsp ক্লায়েন্ট অ্যাপ্লিকেশন চালানো উচিত।

এর জন্য, আমি এখানে এই ফোরামে প্রশ্নের মধ্য দিয়ে গেছি এবং নমোর মতো কোড করার চেষ্টা করেছি,

tab="--tab-with-profile=Default -e "
cmd="java RunRTSPClient"
for i in 1 2 3 4 5
   do
#   
   foo="$foo $tab $cmd"         
   done
gnome-terminal $foo
exit 0

এটি চলমান রয়েছে এবং ট্যাবগুলি সহ টার্মিনাল উইন্ডোটি খোলে তবে হঠাৎ এটি বন্ধ হয়ে যাবে। আমি কোন ত্রুটি পাচ্ছি না।

উত্তর:


13

আপনি যা চান তা করতে স্ক্রিপ্টের এই রূপটি ব্যবহার করুন:

#!/bin/bash

tab="--tab-with-profile=Default"
cmd="bash -c 'java RunRTSPClient';bash"
foo=""

for i in 1 2 3 4 5; do
      foo+=($tab -e "$cmd")         
done

gnome-terminal "${foo[@]}"

exit 0

সাধারণত, এর মতো স্ক্রিপ্ট:

#!/bin/bash

tab="--tab"
cmd="bash -c '<command-line_or_script>';bash"
foo=""

for i in 1 2 ... n; do
      foo+=($tab -e "$cmd")         
done

gnome-terminal "${foo[@]}"

exit 0

<command-line_or_script>প্রতিটি ট্যাবে এন ট্যাবগুলি চালিয়ে একটি নতুন টার্মিনাল খুলবে। এটি খুব কার্যকর হতে পারে যখন আপনি উদাহরণস্বরূপ কোনও নির্দিষ্ট পথে ইন্টারপ্রেটারের সাথে কিছু ট্যাব যুক্ত টার্মিনালটি খুলতে চান ( cd /pathউপরের স্ক্রিপ্টটিতে ব্যবহার করে )।

এছাড়াও, পড়ুন man bash, পরিবর্তনগুলি বুঝতে এই পোস্ট এবং এই পোস্ট

আমি এই স্ক্রিপ্টগুলি পরীক্ষা করেছি এবং সেগুলি কাজ করে।


আমি যেমন বলেছি ঠিক তেমন এটি প্রদর্শন করে এবং বন্ধ করে দেয় এবং কোনও ত্রুটিও পাচ্ছে না। এই সমস্যাটি কীভাবে সমাধান করবেন?
ব্যবহারকারী 172001

ঠিক আছে এখন এটি ট্যাবগুলি সহ উইন্ডোগুলি দেখায় কিন্তু কোনও ট্যাবে অ্যাপ চালাচ্ছে না। এবং আমাকে কিছুটা ব্যাখ্যা করুন, কীভাবে এটি উইন্ডো ডিসপ্লে সমস্যাটি স্থির করেছে।
ব্যবহারকারী 172001

@ user172001 এখন এটি কাজ করছে, নতুন সম্পাদনাগুলি পরীক্ষা করে দেখুন!
রাদু রেডানু

এটি বেশ দুর্দান্ত। +1
নিশান্ত

1
আমি cmd1 && cmd2একাধিক কমান্ড চালানোর জন্য কমান্ড স্ট্রিংয়ের সাথে যুক্ত করার চেষ্টা করেছি । এটি কেবল প্রথমটি চালায় বলে মনে হচ্ছে। আমি কি স্পষ্টতই কিছু ভুল করছি?
বাইসোর

7

আমি আমার নিজের উত্তর নিয়ে এসেছি। আমি মনে করি এটি একটি আরও ভাল পদ্ধতির কারণ:

  1. আমি এটা বুঝতে পারি। আমি একটি ব্যাশ বিশেষজ্ঞ এবং কোন ব্যাখ্যা কি জন্য আরো জনপ্রিয় উত্তর দেওয়া হয়েছিল করছি ..., ${}, -e, অথবা@
  2. এটি আপনাকে প্রতিটি ট্যাবটির জন্য শিরোনাম এবং কমান্ডটি সহজেই কাস্টমাইজ করতে দেয়
  3. আমি কি বলেছিলাম এটি বোঝা অনেক সহজ?

নোট করুন যে ; $SHELLপ্রতিটি জিনোম-টার্মিনাল কমান্ডের শেষে টার্মিনাল উইন্ডোটি খোলা রাখে। অন্যথায় এটি অবিলম্বে বন্ধ হবে।

title1="tab 1"
title2="tab 2"
title3="tab 3"

cmd1="cd /etc"
cmd2="cd ~/Documents"
cmd3="cd /usr/local"

gnome-terminal --tab --title="$title1" --command="bash -c '$cmd1; $SHELL'" \
               --tab --title="$title2" --command="bash -c '$cmd2; $SHELL'" \
               --tab --title="$title3" --command="bash -c '$cmd3; $SHELL'" 
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.