LINUX.ORG.RU

bash - стандартный ввод как аргумент программы

 


0

1

Как можно проще всего в bash-скрипте стандартный ввод передать в качестве аргумента командной строки какой-либо программы? В голову приходит вариант с записью сначала в файл, но неизвестно, будет ли на конечной машине доступ на запись в текущую директорию.

★★★★★

про read это хорошая мысль, но предлагаю копнуть глубже и описать задачу с самого начала

zolden ★★★★★
()
Последнее исправление: zolden (всего исправлений: 1)

Или так: cmd «$(cat)»

anonymous
()
Ответ на: комментарий от zolden

Сейчас пробую с read, а вообще проблема в том, что по ошибке входные данные читались из аргументов командой строки, а должны были из стандартного ввода. Это icfp-2012 - по невнимательности засабмитил им незапускаемое решение, сейчас есть вероятность все исправить отправив патч. Запуск программы происходил из bash-скрипта, вот и думаю таким образом исправить. Иначе патч должен будет включать перекомпиляцию кода. Изначально запуск был такой:

#!/bin/sh

for var in ./lib/*; do
        classpath=$classpath:${var}
done

java -classpath "$classpath" ru.bosony.solvers.Solver $*

orm-i-auga ★★★★★
() автор топика

script.sh `cat` может так, не? Правда, после ввода enter и ^D надо нажать

kostik1
()
Ответ на: комментарий от fads

С xargs оказалось проще всего:

#!/bin/sh

for var in ./lib/*; do
        classpath=$classpath:${var}
done

xargs -0 java -classpath "$classpath" ru.bosony.solvers.Solver $*
Всем спасибо.

orm-i-auga ★★★★★
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.