Bash yorumlanmamış bir dize almanın bir yolu var mı - tek ve ouble tırnak ve Bang! vb. ?
Gibi bir şey yapmak istiyorum
#!/bin/bash
echo -e "Line One\nLine Two\nLine three" | python -c """
import sys
for line in sys.stdin.readlines():
print "STDIN: %s" %line
""" | awk '{print $2}'
Sorun şu ki sıfır STDIN: satırlar yazdırılıyor - stdin python programına aktarılmıyor.
İşte bir usecase: giriş boyutunun düşük GB'nin boyutuna sahip olabileceğini unutmayın:
kedi "my10GBfile.dat" | python -c "" ".. vb
Şimdi orada bir HEREDOC kullanarak .eg
#!/bin/bash
echo -e "Line One\nLine Two\nLine three" | python<<-HERE
some
multiline
python
program
HERE
| awk '{print $2}'
stdin'in kilitlenebileceği problemi var - ve böylece girdi kaybedildi.
Gerçekten istediğim, bash'deki yorumlanmamış çok satırlı dize.
cat
Bu şekilde kullanmak nadiren gitmek için "doğru" yoldur.