Genellikle grep, her eşlemi komut satırında çalıştırıldığında ayrı bir satırda gösterir. Ancak, yukarıdaki komutlarda, her bir maçı ayıran yeni satır kaybolur. Yeni çizginin nasıl korunabileceğini bilen var mı? Tırnak içinde dışarı, $Bir kabuk değişkenine grep sonucunu atadıktan sonra yeni satırı kaybetme
cevap
koyun:
#!/usr/local/bin/bash
out=`grep apache README`
echo "$out";
Sen atamasında ancak yankı onu kaybetme değiliz.
x="Hello,
I
am
a
string
with
newlines"
echo "====="
echo ${x}
echo "====="
echo "${x}"
echo "====="
verir: Sorunuza, ilgisiz
=====
Hello, I am a string with newlines
=====
Hello,
I
am
a
string
with
newlines
=====
Ve
echo "${out}"
Aşağıdaki komut dosyası ile benzer bir etkiye göreceksiniz: Eğer varsa bunu açıkça görebilirsiniz ama yine de bahsetmek isterim, sadece komutları iç içe geçirmenin ek yararı için backsticks yerine $() yapısını kullanmayı tercih ederim. (Ve tersi geçerli)
out=$(grep apache README)
Şimdi bu hiç farklı görünmeyebilir ama sanki mümkün daha karmaşık komutları yapar: Yani komut satırı olur bash değişkenleri aktaran
lines_with_nine=$(grep $(expr 7 + 2) inputfile)
Bunu yapabileceğinizi bilmiyordum, $() ... her zaman yeni bir şeyler öğrenmek İşte. – Tanj
Expr kullanmadan matematik yapabilirsiniz. Sadece çift-parens kullanın: $ ((7 + 2)) –
Aslında, şu andan itibaren tüm cevaplarımla deneyebilirim - sürüsünün eğitimi için bir (her zaman tamamıyla değil) ilgili snippet ekle :-) – paxdiablo
boşluk korur . Örneğin
:
#!/bin/bash
var1="A B C D"
echo $var1 # A B C D
echo "$var1" # A B C D
yeni satırlar onlar "kaldırıldı" olsun boşluk olduğundan [Sadece bir değişken atanır fakat echo $ değişkeni başka bir şey gösterir] (http
- 1. Bir kabuk değişkenine komut çıktısı atama
- 2. Kabuk komutunun sonucunu panoya koymak mümkün mü?
- 3. Bir fonksiyonun sonucunu
- 4. yeni satır karakterini bash değişkenine mi ekliyorsunuz?
- 5. codeIgniter: Oturum açtıktan sonra oturum verilerini kaybetme
- 6. Regex sonucunu yeni bir değişkende saklama
- 7. Sürpriz! Kabuk, komut satırı anahtarlarını
- 8. Jenkins boruhattında Kabuk adımından bir Groovy değişkenine erişme
- 9. PFUser verilerini kaybetme
- 10. grep iç kabuk betiğini kullanma dosyada hata bulunamıyor
- 11. Kabuk cmd "date" sonunda yeni satır olmadan
- 12. Kabuk komut Ben komut kabuk oldukça yeni duyuyorum
- 13. Windows kabuk komut dosyasında (cmd.exe) bir programın stdout'unu bir ortam değişkenine nasıl atayabilirsiniz?
- 14. Sadece eşleşen sözcüğü yazdır, grep aracılığıyla tüm satırı değil
- 15. X öğeleri görüntülendikten sonra yeni tablo satırı ekleme
- 16. Kelime sayım sonucunu,
- 17. grep
- 18. Numaraları kaybetme/değiştirme
- 19. Gnome kabuk uzantısından bir komut satırı programına nasıl çağrı yapabilirim?
- 20. Bir form göndererek yeni satırı durdurun mu?
- 21. Yeni eklediğiniz bir satırı düzenleyin db
- 22. grep
- 23. Grep
- 24. grep
- 25. Grep
- 26. komut satırı "java -version" stdOut veya stdErr sonucunu gönderecek?
- 27. select2 sonucunu
- 28. TextBox'a yeni veri satırı ekleme
- 29. Atom'daki yeni satırı nasıl değiştirebilirim?
- 30. Python raw_input yeni satırı yoksay
olası yinelenen: // stackoverflow .com/questions/29378566/i-just-assign-a-variable-ama-echo-variable-shows-else-else) –
Daha fazlası [Bir bash değişkenine çoklu hat çıkışı yakalama] (http: // stackoverflow.com/questions/613572/capturing-multiple-line-output-to-a-bash-variable) – Renato