У меня есть процесс, который выводит некоторые сжатые данные на стандартный вывод. Что я делаю с этим выводом, так это pipe и отправляю его через туннель SSH на другую машину, где он записывается в файл.
Вот так:
/usr/bin/myapp | ssh root@remotemachine "cat > /path/to/output/file.gz"
когда я ssh
к машине и вызываю эту строку, все идет хорошо. Но когда я помещаю эту команду в сценарий оболочки, как
#!/bin/sh
APP=/usr/bin/myapp
OPTS=--gzip
OUTPUT= "| ssh root@remotemachine \"cat > /path/to/output/file.gz\""
$APP $OPTS $OUTPUT
И затем вызвать сценарий, я вижу мусор на консоли, который я могу только предположить, что это вывод myapp
, а затем это
Unknown parameter '|'
Unknown parameter 'ssh'
Unknown parameter 'root@remotemachine'
Unknown parameter '"cat'
Unknown parameter '>'
Unknown parameter '/path/to/output/file.gz"'
Я предполагаю, что оболочка отправила раздел $OUTPUT
в качестве аргумента myapp
вместо того, чтобы воздействовать на них. Итак, эти "Неизвестный параметр" пришли из myapp
не из оболочки.
Как я могу это исправить?