كيف يمكنني لصق أكواد bash متعددة الأسطر في Terminal وتشغيلها كلها مرة واحدة؟

سئل على ١٥ يوليو ٢٠١١  ·  تمت مشاهدة 97.9k مرة  ·  مصدر

Nathan picture
في ١٥ يوليو ٢٠١١

أحتاج إلى لصق رمز bash متعدد الأسطر في Terminal ، ولكن كلما فعلت ذلك ، يتم تشغيل كل سطر كأمر منفصل بمجرد لصقه.

الإجابات

opsguy picture
في ١٥ يوليو ٢٠١١
111

حاول وضع \ في نهاية كل سطر قبل نسخه.

مثال:

echo "Hello world" && \
script_b.sh

echo $?

رمز الخروج ( $? ) هو الآن التسلسل الكامل للأوامر ، وليس الأمر الأخير فقط.

TryTryAgain picture
في ٢ أبريل ٢٠١٧
56

أنا مندهش حقًا من عدم تقديم هذه الإجابة هنا ، كنت أبحث عن حل لهذا السؤال وأعتقد أن هذا هو النهج الأسهل والأكثر مرونة / متسامحًا ...

إذا كنت ترغب في لصق أسطر متعددة من موقع ويب / محرر نصوص / وما إلى ذلك ، في bash ، بغض النظر عما إذا كانت أوامر لكل سطر أو وظيفة أو نص برمجي بأكمله ... ابدأ ببساطة بـ ( وانتهى باستخدام ) و Enter ، كما في المثال التالي:

إذا كان لدي النقطة التالية

function hello {
    echo Hello!
}
hello

يمكنك اللصق والتحقق في Terminal باستخدام bash من خلال:

  1. بدءًا من (

  2. لصق النص والضغط على Enter (لجعله جميلًا) ... أو لا

  3. تنتهي بـ ) وتضغط على Enter

مثال:

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

تتم متابعة النص الملصق تلقائيًا بـ > لكل سطر. لقد اختبرت مع أسطر متعددة مع أوامر لكل سطر ووظائف ونصوص كاملة. أتمنى أن يساعد هذا الآخرين في توفير بعض الوقت!

itirazimvar picture
في ١١ أكتوبر ٢٠١٥
34

إذا ضغطت على الأمر C-x C-e الذي سيفتح محررك الافتراضي الذي حدد .bashrc ، بعد ذلك يمكنك استخدام جميع الميزات القوية للمحرر الخاص بك. عند الحفظ والخروج ، ستنتظر الخطوط دخولك.

إذا كنت تريد تحديد المحرر الخاص بك ، فاكتب فقط على سبيل المثال. EDITOR=emacs -nw أو EDITOR=vi داخل ~/.bashrc

glenn jackman picture
في ١٦ يوليو ٢٠١١
16

بالإضافة إلى الشرطة المائلة للخلف ، إذا انتهى السطر بـ | أو && أو || ، فسيتم استكماله في السطر التالي.

abrkn picture
في ٢ مايو ٢٠١٧
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
)
Lenar Hoyt picture
في ١٥ أكتوبر ٢٠١٨
12

امكانية اخرى:

bash << EOF
echo "Hello"
echo "World"
EOF
nvd picture
في ١٤ مايو ٢٠١٤
5

لمنع سطر طويل من الأوامر في ملف نصي ، احتفظ بمقتطفات النسخ مثل هذا:

echo a;\
echo b;\
echo c
voltento picture
في ٩ فبراير ٢٠١٨
0

جرب بهذه الطريقة:

echo $( 
    cmd1
    cmd2
    ...
)
jeffery.yuan picture
في ٢١ يونيو ٢٠١٨
0

يتعامل iTerm مع الأمر متعدد الأسطر تمامًا ، فهو يحفظ أمرًا متعدد الأسطر كأمر واحد ، ثم يمكننا استخدام Cmd + Shift + ; للتنقل في السجل.

تحقق من المزيد من نصائح iTerm على العمل بفعالية مع iTerm

sspprroo picture
في ٦ سبتمبر ٢٠١٥
-1

محاولة

out=$(cat)

ثم الصق سطورك واضغط على Ctrl-D (أدخل حرف EOF). سيتم إعادة توجيه كل المدخلات حتى Ctrl-D إلى stdout cat.