টার্মিনালটি বন্ধ না করে স্ক্রিপ্টটি কীভাবে চালানো যায়?


69

আমার কাছে ফাইলটিতে একটি স্ক্রিপ্ট রয়েছে bla.shএবং এটি কার্যকর হয়। আমি যখন এটিতে ক্লিক করি তখন স্ক্রিপ্টটি কার্যকর হয় এবং উইন্ডোটি বন্ধ হয়ে যায়। আমি উইন্ডোটি খোলা থাকতে চাই ।

cmd /k** commandউইন্ডোজে কমান্ডের মতো কিছু ।

পিএস আমি ব্যবহার করতে চাই নাpause , তবে স্ক্রিপ্টটি কার্যকর হওয়ার পরে আমি আরও কমান্ড লিখতে চাই।

উত্তর:


81

$SHELLআপনার স্ক্রিপ্টের শেষে রাখুন :

বিকল্প পাঠ

একটি ছোট ত্রুটি: যেহেতু এটি শেল হিসাবে gnome-terminalচালাচ্ছে না bash, এটি এটি একটি অ্যাপ্লিকেশন হিসাবে বিবেচনা করবে এবং আপনি টার্মিনালটি বন্ধ করার চেষ্টা করার সময় এটি সম্পর্কে একটি সতর্কতা প্রদর্শন করবে:

There is still a process running in this terminal
Closing the terminal will kill it.

আমি এই সতর্কতাটি গোপন করার কোনও ভাল উপায় খুঁজে পাইনি। আপনি যদি চান তবে আপনি এটি চালিয়ে সম্পূর্ণ অক্ষম করতে পারেন:

gconftool --set /apps/gnome-terminal/global/confirm_window_close --type boolean false

আপনি যদি xtermজিনোম-টার্মিনালের পরিবর্তে ব্যবহার করছেন তবে এটি ঘটবে না ; এটা আপনাকে বিরক্ত করা উচিত।


20
আপনি সেটিংস পরিবর্তন না করে কেবল সতর্কতাটি সরিয়ে দেওয়ার exec $SHELLপরিবর্তে ব্যবহার করতে পারেন $SHELL
আন্দ্রে কার্বেলিনী

1
তবে এই দ্রবণটি একটি অতিরিক্ত শেল / প্রক্রিয়া তৈরি করে। এড়ানো যায়?
lucasvc

আমি এটি করার কোন উপায় জানি না, না। সমস্যাটি হ'ল প্রথম বাশ প্রক্রিয়াটি শেষ হয়ে গেলে আপনি স্ট্যান্ডার্ড আইওতে আপনার হ্যান্ডেলটি হারাবেন, সুতরাং আপনাকে এই হ্যান্ডেলগুলি দিয়ে যায় এমন একটি ডিমন দিয়ে কিছু কৌশল করতে হবে যা এরপরে আরও ত্রুটিযুক্ত এবং বিরক্তিকর হবে।
স্টেফানো প্যালাজো

10

জিনোম টার্মিনাল ব্যবহার করা

কমান্ড স্ট্রিংয়ের শেষে জিনোম-টার্মিনাল সংযোজন; ব্যাশ ব্যবহার করে এবং স্ক্রিপ্টটি -c বিকল্পের সাহায্যে কল করা কাজ করে। উদাহরণ স্বরূপ:

gnome-terminal -e "bash -c ~/script.sh;bash"

এটি নিম্নলিখিতগুলি করে:

  1. জিনোম-টার্মিনাল খোলে
  2. স্ক্রিপ্ট স্ক্রিপ্ট.শ
  3. স্ক্রিপ্ট শেষ হওয়ার পরে বাশ প্রম্পট দেখায়।

আপনি উইন্ডোটি বন্ধ করে জিনোম-টার্মিনাল উইন্ডো থেকে প্রস্থান করতে পারবেন বা ব্যাশ প্রম্পটে প্রস্থান প্রস্থান করুন। অথবা আপনি অনুরোধ হিসাবে আরও কমান্ড টাইপ করতে পারেন।



7

আপনার যদি স্ক্রিপ্টটিতে অ্যাক্সেস থাকে তবে আপনি নিম্নলিখিত কোডটি শেষে যুক্ত করতে পারেন:

read

এই কোডটি বন্ধ হওয়ার আগে কোনও ইনপুটটির জন্য অপেক্ষা করবে, সুতরাং আপনি এন্টার চাপ না দেওয়া পর্যন্ত টার্মিনালটি উন্মুক্ত থাকবে।


1
আমি প্রায়ই ব্যবহার bashশেষে কিন্তু readপারবেন আমাকে সঙ্গে উইন্ডো বন্ধ করতে ctrl+cঅথবা enterপরিবর্তে, ctrl+shift+wবা alt+f4। আপনি যখন আপনার স্ক্রিপ্টে দ্রুত পুনরাবৃত্তি করেন এটি সুবিধাজনক।
hsandt

5

ব্যবহারের bashএর --init-fileএকটি অস্থায়ী নল দিয়ে বিকল্প:

bash --init-file <(echo './<script_name>')

উদা:

bash --init-file <(echo './bla.sh')

2

কমান্ড স্ট্রিংয়ের শেষে ব্যবহার xtermএবং সংযোজন ;bashকাজ করে। উদাহরণ স্বরূপ:

xterm -e "bash ~/script.sh;bash"

এটি নিম্নলিখিতগুলি করে:

  1. এক্সটার্ম খোলে
  2. স্ক্রিপ্টটি কার্যকর করে script.sh
  3. স্ক্রিপ্ট শেষ হওয়ার পরে বাশ প্রম্পট দেখায়।

উইন্ডোটি বন্ধ exitকরে বাশ প্রম্পটে টাইপ করে আপনি এক্সটার্ম উইন্ডো থেকে প্রস্থান করতে পারেন । অথবা আপনি অনুরোধ হিসাবে আরও কমান্ড টাইপ করতে পারেন।


1
xterm -e bash --rcfile bla.sh

এটি স্ক্রিপ্টটি একটি নতুন উইন্ডোতে চালিত করবে এবং উইন্ডোটি শেষ হওয়ার পরে আপনাকে তার নিয়ন্ত্রণও দেবে।

তবে নতুন উইন্ডোটি ~/.bashrcস্বাভাবিক হিসাবে লোড হবে না , যেহেতু আমরা bla.shপরিবর্তে দৌড়েছি । এটি লাগিয়ে প্রতিকার করা যেতে পারে

. ~/.bashrc

শীর্ষে bla.sh

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.