আমি কীভাবে একাধিক-লাইন ব্যাশ কোডগুলি টার্মিনালে পেস্ট করব এবং এটি একবারে চালিত করব?


107

আমাকে টার্মিনালে একটি বহু-লাইন বাশ কোড পেস্ট করতে হবে, তবে আমি যখনই করি, প্রতিটি লাইনটি আটকানোর সাথে সাথে পৃথক কমান্ড হিসাবে চালিত হয়।

উত্তর:


111

\অনুলিপি করার আগে প্রতিটি লাইনের শেষে রাখার চেষ্টা করুন ।

উদাহরণ:

echo "Hello world" && \
script_b.sh

echo $?

প্রস্থান কোড ( $?) এখন কমান্ডগুলির সম্পূর্ণ ক্রম, এবং কেবলমাত্র শেষ কমান্ড নয়।


21
দ্রষ্টব্য: পিছনের স্থানগুলি এটি ভেঙে দেবে!
সর্বোচ্চ রিডার

54

আমি সত্যিই অবাক হয়েছি যে এই উত্তরটি এখানে দেওয়া হয়নি, আমি এই প্রশ্নের সমাধানের সন্ধানে ছিলাম এবং আমি মনে করি এটিই সবচেয়ে সহজ পদ্ধতির এবং আরও নমনীয় / ক্ষমাশীল ...

আপনি যদি কোনও ওয়েবসাইট / পাঠ্য সম্পাদক / ইত্যাদি থেকে একাধিক রেখাকে বাশতে পেস্ট করতে চান তবে তা প্রতি লাইনের প্রতি আদেশ বা কোনও ফাংশন বা পুরো স্ক্রিপ্ট নির্বিশেষে ... কেবল একটি দিয়ে শুরু করুন এবং এন্টার (দিয়ে শেষ )করুন, যেমন নিম্নলিখিত উদাহরণে:

আমি যদি নিম্নলিখিত ব্লব ছিল

function hello {
    echo Hello!
}
hello

আপনি এটি দ্বারা বাশ ব্যবহার করে টার্মিনালে আটকানো ও যাচাই করতে পারেন:

  1. দিয়ে শুরু (

  2. আপনার পাঠ্য আটকানো, এবং এন্টার টিপুন (এটিকে সুন্দর করার জন্য) ... বা না not

  3. একটি দিয়ে শেষ হয় )এবং এন্টার টিপুন

উদাহরণ:

imac:~ home$ ( function hello {
>     echo Hello!
> }
> hello
> )
Hello!
imac:~ home$ 

আটকানো পাঠ্য >প্রতিটি লাইনের জন্য একটি প্রিপেন্ডিং দিয়ে স্বয়ংক্রিয়ভাবে চালিয়ে যায় । আমি প্রতি লাইন, ফাংশন এবং পুরো স্ক্রিপ্টগুলিতে একাধিক লাইন পরীক্ষা করেছি। আশা করি এটি অন্যকে কিছুটা সময় বাঁচাতে সহায়তা করবে!


4
সবচেয়ে সহজ পদ্ধতি আইএমও
হব্রোকার

4
@ টলকিট আপনার বর্ণিত সাধারণ জিনিসগুলির জন্য এটি কাজ করবে তবে আমি যে সমাধানটি দিয়েছি তা আরও জটিল পরিস্থিতিতে (লাইন ব্রেক, একাধিক ফাংশন, পুরো স্ক্রিপ্ট ইত্যাদি) কাজ করবে
ট্রাই ট্রাইগেইন

4
এটি একটি সাবশেলে আটকানো কমান্ডগুলি চালায়, তাই এটি প্রায়শই বাস্তবে আপনি যা চান তা করে না। বর্তমান শেলটিতে চালনার জন্য আপনি বন্ধনীগুলির পরিবর্তে ব্রেস ব্যবহার করতে পারেন; কিন্তু সত্যিই, শুধু হয় না। খোল সামলাতে পারে।
ট্রিপলি

33

আপনি যদি C-x C-eকমান্ড টিপেন যা আপনার ডিফল্ট সম্পাদকটি খুলবে যা সংজ্ঞায়িত করা হয়েছে .bashrc, এর পরে আপনি আপনার সম্পাদকের সমস্ত শক্তিশালী বৈশিষ্ট্য ব্যবহার করতে পারেন। আপনি যখন সংরক্ষণ এবং প্রস্থান করবেন, লাইনগুলি আপনার প্রবেশের জন্য অপেক্ষা করবে।

আপনি যদি আপনার সম্পাদককে সংজ্ঞায়িত করতে চান তবে কেবল প্রাক্তনের জন্য লিখুন। EDITOR=emacs -nwবা EDITOR=viভিতরে~/.bashrc


4
কৌশলটি কার্যকর, তবে নোট করুন যে সম্পাদককে অবশ্যই সিঙ্ক্রোনজ চালাতে হবে (যেমন emacsএবং করা vi), এবং সংরক্ষণ এবং প্রস্থান করার সময় কমান্ডগুলি তাত্ক্ষণিকভাবে কার্যকর করা হয় ।
এমকিলেমেন্ট 0


12

লাইনের চারপাশে প্রথম বন্ধন যুক্ত করুন। উদাহরণ:

$ (
sudo apt-get update
dokku apps
dokku ps:stop APP # repeat to shut down each running app
sudo apt-get install -qq -y dokku herokuish sshcommand plugn
dokku ps:rebuildall # rebuilds all applications
)

4
মনে রাখবেন, প্যারানথেসিসের মতো (, ধনুর্বন্ধনীও {উপরের উদাহরণে একই কাজ করবে
জিপসিকসমোনট



4

একটি পাঠ্য ফাইলে কমান্ডগুলির একটি দীর্ঘ লাইন প্রতিরোধ করতে, আমি আমার অনুলিপি-পিস স্নিপেটগুলি এইভাবে রাখি:

echo a;\
echo b;\
echo c


0

iTerm মাল্টিপল-লাইন কমান্ড পুরোপুরি পরিচালনা, এটা সংরক্ষণ করে মাল্টিপল-লাইন মাত্র একটি কমান্ড হিসাবে আদেশ, তাহলে আমরা ব্যবহার করতে পারেন Cmd+ + Shift+ + ;ইতিহাস নেভিগেট করতে।

আইটির্মের সাথে কার্যকরভাবে কাজ করতে আরও আইটার্ম টিপস পরীক্ষা করে দেখুন


-1

চেষ্টা করুন

out=$(cat)

তারপরে আপনার লাইনগুলি পেস্ট করুন এবং Ctrl-D (EOF অক্ষর সন্নিবেশ করুন) টিপুন। Ctrl-D অবধি সমস্ত ইনপুট বিড়ালের স্টাডাউটে পুনঃনির্দেশিত হবে।


এই চেষ্টা: $ out=$(cat) && eval "$out"। উপরের পরামর্শ অনুসারে শেষ লাইনের পরে এন্টার টিপুন এবং তারপরে CTRL + D চাপুন।
মোহাম্মদ
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.