Есть конструкция:(cat /tmp/foo ; echo "bar" ) | script.sh
в этом случае на stdin скрипта поступают вначале содержимое файла foo, а затем слово bar.Как изменить данную конструкцию, чтобы вместо файла foo использовать вывод предыдущего в конвеере, чтобы было типа такого:
cat /tmp/foo| ( "?" ; echo "bar" ) | script.sh
Что вписать вместо вопроса?
echo `/tmp/foo` "bar" | script.shЕсли нужно что-то специфичное, можно посмотреть man echo
>echo `/tmp/foo` "bar" | script.sh
>
>Если нужно что-то специфичное, можно посмотреть man echoвы меня не поняли... echo тут не причем!!!
>echo `/tmp/foo` "bar" | script.sh
>
>Если нужно что-то специфичное, можно посмотреть man echoесть нюанс, echo имеет привычку заменять \n на пробел, так что на входе следующей утилиты в конвейере будет не совсем то :)
user-desktop% (echo 1; echo 2) | xargs
1 2
user-desktop% (echo 1 | tr 1 9; echo 2) | xargs
9 2Я ответил на ваш вопрос?
>Есть конструкция:
>(cat /tmp/foo ; echo "bar" ) | script.sh
>в этом случае на stdin скрипта поступают вначале содержимое файла foo, а
>затем слово bar.
>Как изменить данную конструкцию, чтобы вместо файла foo использовать вывод предыдущего в
>конвеере, чтобы было типа такого:
>cat /tmp/foo| ( "?" ; echo "bar" ) | script.sh
>Что вписать вместо вопроса?cat /tmp/foo | ( cat ; echo "bar" ) | script.sh
ps:
если предыдущий в конвейере поддерживает поведение cat (последовательный вывод всех указанных файлов), то можно также пользоваться следующим приемом:
cat /tmp/foo <(echo "bar") | script.sh
>cat /tmp/foo | ( cat ; echo "bar" ) | script.shОй, совсем слепой стал. То же самое написал.
>cat /tmp/foo| ( "?" ; echo "bar" ) | script.sh
>
>Что вписать вместо вопроса?cat
cat /tmp/foo |( cat ; echo "bar" ) | script.sh
А призы и подарки -- будут? :)
>>cat /tmp/foo| ( "?" ; echo "bar" ) | script.sh
>>
>>Что вписать вместо вопроса?
>
>cat
>
>cat /tmp/foo |( cat ; echo "bar" ) | script.sh
>
>А призы и подарки -- будут? :)Спасибо, cat /tmp/foo |( cat ; echo "bar" ) | script.sh - это оно!!!