Terminale çok satırlı bir bash kodu yapıştırmam gerekiyor, ancak ne zaman yapsam, her satır yapıştırılır yapıştırılmaz ayrı bir komut olarak çalıştırılıyor.
Yanıtlar:
Bu cevabın burada verilmemesine gerçekten şaşırdım, bu soruya bir çözüm arıyordum ve bence bu en kolay yaklaşım ve daha esnek / bağışlayıcı ...
Bir web sitesinden / metin düzenleyiciden / vb. Birden çok satırı bash'ye yapıştırmak isterseniz, satır başına komut veya işlev veya tüm komut dosyası olsun ... basitçe a ile başlayın (
ve a )
ve Enter ile bitirin , örneğin aşağıdaki örnekte:
Aşağıdaki blobum olsaydı
function hello {
echo Hello!
}
hello
Bash kullanarak bir terminale yapıştırıp doğrulayabilirsiniz:
İle başlayan (
Metninizi yapıştırın ve Enter tuşuna basın (güzelleştirmek için) ... ya da değil
A ile biten )
ve Enter'a basılması
Misal:
imac:~ home$ ( function hello {
> echo Hello!
> }
> hello
> )
Hello!
imac:~ home$
Yapıştırılan metin otomatik olarak >
her satır için bir ön ekleme ile devam eder . Satır başına komutlar, işlevler ve tüm komut dosyaları içeren birden çok satırı test ettim. Umarım bu, başkalarının biraz zaman kazanmasına yardımcı olur!
C-x C-e
Tanımladığınız varsayılan düzenleyicinizi açacak komuta basarsanız .bashrc
, bundan sonra editörünüzün tüm güçlü özelliklerini kullanabilirsiniz. Kaydedip çıktığınızda, satırlar girişinizi bekleyecektir.
Editörünüzü tanımlamak istiyorsanız, sadece Ex için yazın. EDITOR=emacs -nw
veya EDITOR=vi
içinde~/.bashrc
emacs
ve vi
yaptığı gibi) çalışması gerektiğine ve komutların kaydedilip çıkıldığında anında çalıştırılacağına dikkat edin .
Ters eğik çizgiye ek olarak, bir satır |
veya &&
veya ile biterse ||
, sonraki satırda da devam eder.
Çizgilerin etrafına parantez ekleyin. Misal:
$ (
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
)
(
{
Bir başka olasılık:
bash << EOF
echo "Hello"
echo "World"
EOF
iTerm çok satırlı komutu mükemmel bir şekilde işler, birden çok satırlı komutu tek bir komut olarak kaydeder, ardından geçmişte gezinmek için Cmd
+ Shift
+ kullanabiliriz ;
.
İTerm ile verimli çalışma konusunda daha fazla iTerm ipucu kontrol edin
Deneyin
out=$(cat)
Ardından satırlarınızı yapıştırın ve Ctrl-D'ye basın (EOF karakterini girin). Ctrl-D'ye kadar olan tüm girişler kedinin standart çıkışına yönlendirilecektir.
$ out=$(cat) && eval "$out"
. son satırdan sonra enter tuşuna ve yukarıda önerildiği gibi CTRL + D'ye basın.