কিছু না হারিয়ে কীভাবে একাধিক বাশ কমান্ড শেলটিতে আটকান?


6

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

তাই আমি কখনও কখনও এটি শেষ:

$ bash <<EOF
cmd2
...
EOF

একটি ভাল উপায় আছে কি? কিছু বাশ বিকল্প? একটি এসএসএইচ বিকল্প? (আমার সেটআপটি একটি উবুন্টু সার্ভারে চলমান একটি বাশ, যা আমি একটি স্ট্যান্ডার্ড ওএস এক্স টার্মিনাল থেকে এসএসএইচ করছি that এর কতটা প্রাসঙ্গিক তা নিশ্চিত নয়))

সম্পাদনা

উদাহরণ

একটি দৃ concrete় উদাহরণের জন্য অনুরোধের প্রতিক্রিয়া হিসাবে, এখানে একটি's আমি বাশ শেলের একটি ওপেনস্ট্যাক ভিএম-তে চলমান একটি স্টক উবুন্টু কোয়ান্টালের সাথে সংযুক্ত একটি এসএসএইচ শেলের (আমার স্নো লিওপার্ড ডেস্কটপ থেকে) নিম্নলিখিত চারটি লাইন পেস্ট করেছি।

sudo apt-get install -y r-base gdebi-core
sudo apt-get install -y libapparmor1 # Required only for Ubuntu, not Debian
wget http://download2.rstudio.org/rstudio-server-0.97.314-amd64.deb
sudo gdebi rstudio-server-0.97.314-amd64.deb

প্রথম দুটি কমান্ড কার্যকর করা হয়েছিল (সফলভাবে), যদিও শেষ দুটি স্পষ্টতই কখনও সার্ভারের (বা কমপক্ষে, বাশ দ্বারা প্রসেস করা হয়নি) কখনও পায় নি।


1
আপনার ব্যর্থতার নির্দিষ্ট উদাহরণ রয়েছে কি?
slhck

নং সাধারণত একটি দীর্ঘ চলমান কমান্ড মত apt-get update, git clone, wgetইত্যাদি
স্টিভ বেনেট

1
সমস্যা: শেলটিতে কয়েকটি কমান্ড আটকানোর জন্য একটি কার্যকর, শক্তিশালী প্রক্রিয়া দরকার তারপরে সেগুলি কার্যকর করে, এটি টার্মিনালের নিজেই ভিজ্যুয়ার উপর নির্ভর করে না।
স্টিভ বেনেট

1
ওটি এখানে, তবে তবুও আকর্ষণীয়। কমপক্ষে আমি সত্যিই অবাক হয়েছিলাম যে আপনি কখনও কখনও ওয়েবসাইটগুলি থেকে অনুলিপি এবং পেস্ট দিয়ে যা চান তা পান না: h-online.com/open/news/item/…
এমপি

2
এটি "আমাকে একটি শিলা সন্ধান করুন" ("না, এটি একটি খুব বড়।"; "না, এটি খুব ছোট একটি।"; "এটির মতো নয়, আমি রঙটি পছন্দ করি না" ") এর মতো খেলায় এটি আরও স্পষ্টত প্রকাশিত হয় সমস্যার বিবরণ আপনাকে কম অনুমান এবং আরও ভাল কিছু প্রাসঙ্গিক উত্তর পেতে পারে যা আপনি আরও ভাল চান।
জে রবার্ট

উত্তর:


3

একটি দ্রুত এবং নোংরা সমাধান এটি চালানো হয়:

bash -c '<paste commands here>'

পেস্টে নতুন লাইন বর্ণ থাকলেও এটি কাজ করে। পেস্টে একক উক্তি থাকলে এটি ব্যর্থ হতে পারে contains যদি আপনি বাশ উদ্ধৃতি বিধি সম্পর্কে সচেতন হন তবে আপনি যে নির্দিষ্ট কমান্ডগুলি চালনার চেষ্টা করছেন তার জন্য এই পদ্ধতিটি পরিবর্তন করতে সক্ষম হওয়া উচিত।


এটি দুর্দান্ত - আপনি কমান্ড লাইনে নতুন লাইন রাখতে পারবেন এমন আমার ধারণা ছিল না।
স্টিভ বেনেট

5

আপনি যেমন কিছু ব্যবহার করতে পারে pbpaste | bash। এবং edit-and-execute-command( \C-x\C-e) একাধিক কমান্ডের সাথেও কাজ করে।

যদি কিছু কমান্ডের রুট অনুমতি প্রয়োজন হয়, আপনি sudo -v5 মিনিটের জন্য টাইমস্ট্যাম্পটি বৈধতা ব্যবহার করতে পারেন ।


ওপি হ'ল একটি উবুন্টু সার্ভারে এসএসহিং pbpasteকরছে , তাই এখানে প্রবেশ করানো bashসহজেই সম্ভব হয় না।

2
আহ, সেই সম্পাদনা-বর্তমান-লাইন কৌশলটি কাজ করে। (Ctrl-x, Ctrl-E বা অন্যান্য স্বরলিপিতে ^ X ^ E)।
স্টিভ বেনেট

এটি বেশ কয়েকটি কী-স্ট্রোক রয়েছে: Ctrl + X, Ctrl + E, Cmd-V, Ctrl + X, Y, <enter>
স্টিভ বেনেট


@ স্টিভবেনেট দেখে মনে হচ্ছে আপনার U ভিজ্যুয়াল সম্পাদক ন্যানো;) কীস্ট্রোকগুলি অন্য সম্পাদকদের জন্য আলাদা
tzrzsmókus

1

আমি যথাযথভাবে নামযুক্ত আমার প্রিয় পাঠ্য সম্পাদককে এই জাতীয় কাট এবং পেস্ট তৈরি করি, যেখানে আমি পরে সাবধানে বহির্মুখী চরিত্রগুলি সন্ধান করতে পারি এবং নিশ্চিত হয়েছি যে আমি যা চালানোর প্রত্যাশা করছি তা চালিয়ে যাব। আমি একটি ইন্টারেক্টিভ শেলটিতে কোড স্নিপেটগুলি কাটা এবং আটকানোর পক্ষে তীব্র বিরূপ: কে কে জানে কেটে এবং পেস্ট অপারেশন দ্বারা অতিরিক্ত কমান্ডগুলি নেওয়া যেতে পারে?

আপনার পাঠ্য ফাইলে একবার যাচাই করা কমান্ডগুলি সংরক্ষণ করা হয়ে গেলে সেগুলি বিল্ট ইন কমান্ড দিয়ে কার্যকর করা যায়

source <filename>


ঠিক আছে, এবং একবার আপনি নিজেকে সন্তুষ্ট করেছেন যে ক্লিপবোর্ডের বিষয়বস্তুগুলি আপনি কী চালাতে চান তা অবিকল?
স্টিভ বেনেট

আসল আপডেট; সংরক্ষিত ফাইলে, এটিকে এক্সিকিউটেবল না করেই, ভিতরে থাকা স্টেটমেন্টগুলি সম্পাদন করতে 'উত্স <ফাইলেন>' ব্যবহার করুন।
নেভিন উইলিয়ামস

এবং এখন আপনার কাছে একটি স্ক্রিপ্ট ফাইল রয়েছে যা আপনি আর কখনও চালাতে পারবেন না। এটা বেশ আনাড়ি।
স্টিভ বেনেট

তাহলে আপনি এটি মুছুন এবং এটি আর হবে না।
শিনটেকজৌ

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