জিনোম-টার্মিনালের জন্য -e এবং -x বিকল্পের মধ্যে পার্থক্য কী?


11

ম্যান পেজ স্টেট:

-e, --command=STRING
Execute the argument to this option inside the terminal.
-x, --execute
Execute the remainder of the command line inside the terminal.

দ্বিতীয় উদাহরণে উল্লেখ করা "কমান্ড লাইন" কী? এবং এর "বাকী" কী? এই দুটি বিকল্পের মধ্যে পার্থক্য থাকলে আপনি দয়া করে একটি উদাহরণ দিতে পারেন? নাকি এগুলি মূলত এক?


1
সঠিক নাও কিন্তু এই পাওয়া superuser.com/questions/198015/...
rɑːdʒɑ

দুর্দান্ত প্রথম প্রশ্ন।
জারেড স্মিথ

উত্তর:


16

বিবেচনা:

gnome-terminal -x sleep 10m --version
gnome-terminal -e 'sleep 10m' --version

প্রথম উদাহরণে, পরবর্তী সমস্ত কিছুই -xকমান্ড কার্যকর করার জন্য ব্যবহৃত হয়। জিনোম টার্মিনাল sleep 10m --versionকমান্ড হিসাবে চলবে । --versionএই ক্ষেত্রে জিনোম টার্মিনাল দ্বারা চালিত কমান্ডের অংশ হয়ে যায়।

দ্বিতীয়টিতে, কেবল একক স্ট্রিং আর্গুমেন্টটি -eকমান্ড হিসাবে ব্যবহৃত হয়, অন্য কিছু নয়। সুতরাং --versionএখানে আসলে জিনোম টার্মিনালের একটি বিকল্প।

আপনি যদি কমান্ডের একটি শৃঙ্খলা চালাতে চান তবে প্রথমটি আরও কার্যকর হতে পারে:

gnome-terminal -x bash -c 'command 1; command 2; ...'

এটি করা কঠিন -e, কারণ পুরো কমান্ডটি একটি একক স্ট্রিং হওয়া দরকার, তাই আপনাকে পুরো জিনিসটি উদ্ধৃত করতে হবে। এর পরিবর্তে এর অর্থ হ'ল আপনাকে উদ্ধৃতি এবং পরিবর্তনশীল প্রসারণ এবং এই জাতীয় বিষয়ে আরও যত্নবান হওয়া দরকার:

gnome-terminal -e "bash -c 'command 1 $foo; command 2; ...'"

এখানে, $fooবর্তমান শেল দ্বারা প্রসারিত করা হবে।

gnome-terminal -e 'bash -c "command 1 | awk '\''{print $NF}'\''"' 

'কমান্ড স্ট্রিংয়ের ভিতরে ব্যবহার করা বিরক্তিকর উদ্ধৃতি হ্যান্ডলিংয়ের সাথে জড়িত।


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