আমার একাধিক টার্মিনাল ট্যাব খুলতে হবে, তাদের শিরোনাম দিতে হবে, একটি ডিরেক্টরিতে যেতে হবে এবং প্রতিটি ট্যাবকে একটি কমান্ড চালানো দরকার।
আমি Linux এবং শেল স্ক্রিপ্টিং নতুন am, অনলাইন অনুসন্ধান এবং কিছু সমাধান পরীক্ষণ পর, আমি এই স্ক্রিপ্ট (প্রণীত সম্পাদিত নিচে উত্তর উপর ভিত্তি করে):
#!/bin/bash
cd /media/Extra/Project
tab=" --tab-with-profile=Default"
options=(--tab --title=Terminal)
cmds[1]="'rails s'"
titles[1]="Server"
cmds[2]="'rails c'"
titles[2]="Console"
for i in 1 2; do
options+=($tab --title="${titles[i]}" -e "bash -c \"${cmds[i]} ; bash\"" )
done
gnome-terminal "${options[@]}"
exit 0
এটি ট্যাবগুলি খোলে, তাদের নাম দেয়, তবে এই ত্রুটিটি উত্পন্ন করার জন্য আদেশগুলি কার্যকর করতে ব্যর্থ হয়:
এই টার্মিনালের জন্য শিশু প্রক্রিয়া তৈরি করতে একটি ত্রুটি হয়েছিল
আর একটি অসুবিধা হ'ল আমি যদি চলমান কমান্ডটি বন্ধ করে রাখি তবে এটি ট্যাবটি বন্ধ করে দেয় যা আমি চাই না। কমান্ডটি থামাতে এবং একই ট্যাবটির মধ্যে এটি আবার চালানো দরকার।
স্ক্রিপ্টে কী ভুল? এটি করার আরও সহজ উপায় আছে?
দ্রষ্টব্য: আমি যদি কমান্ড থেকে (-e "\" bash -c $ {cmds [i] b; bash \ "") অংশটি সরিয়ে ফেলেছি তবে এটি প্রদত্ত ডিরেক্টরিতে থাকা ট্যাবগুলি খুলবে এবং কোনও ত্রুটি ছাড়াই নাম রাখবে।
-Edit-1:
নীচে @ টুকুনটক্স উত্তরটি প্রয়োগ এবং স্ক্রিপ্ট সম্পাদনার পরে, ত্রুটিটি আর উপস্থিত হয় না, তবে এটি আমাকে দেয় bash: rails c: command not found
এবং rails s
রেল সার্ভার শুরু করার পরিবর্তে একটি নতুন রেল অ্যাপ তৈরি করে, আমি এই ফোল্ডারটি একবার অ্যাক্সেস করার পরে একটি রত্ন নির্বাচন করতে .rmvrc ব্যবহার করছি ।
cmds[1]="'ping 192.168.9.9'"
এটি লিখি তবে আমাকে একই ত্রুটি দেয় তবে আমি একক উদ্ধৃতি সরিয়ে সমাধান করেছি। সুতরাং আমি লিখি cmds[1]="ping 192.168.9.9"
এটি কাজ করে।
tab=" --tab-with-profile=Default"
??