Я смог получить эту работу. Проблемой были каналы, были отключены звук. См. инструкции здесь: http://linsek.com/?q=node/12
двойные кавычки отсутствуют в эхе команды:
echo -e "$x" | ./perlscript
Это намного более чисто и больше идиоматического способа пойти о том, что Вы пытаетесь сделать:
{ printf 'Hello to the world of tomorrow\n <pre>\n'
tail -n 50 log/logfile.log
printf '</pre>\n'; } | ./perlscript
Нет никакой причины, необходимо буферизовать весь, который производит в переменной сначала, когда Вы просто собираетесь продвинуть ее в порядке в канал так или иначе.
echo -e "$x"
иecho -e $x
– whoami 26.09.2012, 18:12$(...)
конструкции также отбрасывают конечный пробел. Засвидетельствуйте этоA=$(printf "abc\n"); printf "<%s>" "$A"
произведет<abc>
. – dubiousjim 26.09.2012, 19:03"$x"
,"$(somecommand)"
. См. mywiki.wooledge.org/BashFAQ/020,$VAR по сравнению с $ {VAR} и заключить в кавычки или не заключить в кавычки – Gilles 'SO- stop being evil' 27.09.2012, 02:03