üন্দ্রাকের উত্তর ঠিক আছে, তবে সম্ভবত এই কাজের জন্য কিছুটা ভারী ওজন।
এখানে একটি স্ক্রিপ্ট রয়েছে যা তার যুক্তিগুলির ভিত্তিতে একটি স্ক্রিপ্ট লিখে writes
#!/bin/sh
# terminal-plus-command: start a subordinate terminal which runs
# the interactive shell after first running the command arguments
tmpscript=/tmp/tmpscript.$$
echo "#!$SHELL" > $tmpscript
echo "$@" >> $tmpscript
echo exec "$SHELL" >> $tmpscript
chmod +x $tmpscript
gnome-terminal --command $tmpscript
rm -f $tmpscript
যদি আপনি বেশি শেল প্রোগ্রামিং না করেন তবে এখানে যতটা যাদু রয়েছে তার চেয়ে বেশি এখানে উপস্থিত রয়েছে। প্রথমে আমি স্ক্রিপ্টটি ধরে রাখার জন্য একটি অস্থায়ী ফাইলের নাম রাখি যেখানে $$
এই স্ক্রিপ্টটি চালিত শেলের প্রক্রিয়া আইডি রয়েছে। /tmp/something.$$
রূপক ক্ষেত্রে এই স্ক্রিপ্টের দুই স্থানেই একই সময়ে চালানো হয় ব্যবহার করা হয়, তারা একই অস্থায়ী ফাইল ব্যবহারের চেষ্টা করা হবে না।
$SHELL
স্ক্রিপ্টটি চলমান শেলের নামে ভেরিয়েবল সেট করা আছে। আপনি যদি / usr / bin / bash ব্যবহার করেন তবে সম্ভবত আপনি মিনি স্ক্রিপ্টটি এটি ব্যবহার করতে চান।
"$@"
"আমার সব আর্গুমেন্ট ঢুকান, তাদের মূল্য উদ্ধৃতি প্রয়োজনে" এর জন্য একটি শেল বাগ্ধারা হয়। এই অদ্ভুত সিনট্যাক্স কারণ
script.sh 'my file' your\ file
দুটি উপাদান হিসাবে আর্গুমেন্ট বিভক্ত করতে
"my file" "your file"
পরিবর্তে $@
ফল যে চার হবে
"my" "file" "your" "file"
স্ক্রিপ্টের শেষ লাইনগুলি মিনি স্ক্রিপ্টটি চালানো এবং তারপরে একটি ইন্টারেক্টিভ শেল শুরু করার জন্য জিনোম-টার্মিনালের ব্যবস্থা করে। যখন জিনোম-টার্মিনালটি প্রস্থান করে, অস্থায়ী স্ক্রিপ্টটি সরানো হয় কারণ জঞ্জালটি শীতল হয় না।
শেষ লাইনটি মিনি স্ক্রিপ্টের অংশ নয়, এটি প্রমাণ করে যে মিনি স্ক্রিপ্টটি কাজ করে। উপরের 11 লাইনের স্ক্রিপ্টটি যদি কোনও ফাইল বলা হয় rt.sh
তবে chmod
এটিগুলি কার্যকর করে তোলে এবং তারপরে এটি কার্যকর করা হয় exec
$ chmod +x rt.sh && ./rt.sh echo hello world
এই সমস্তটির ফলাফল একটি জিনোম টার্মিনাল যা প্রদর্শিত শুরু হবে which
hello world
তার প্রথম লাইনে এবং তারপরে একটি ইন্টারেক্টিভ শেল শুরু হয়:
msw@myhost:~$