Используя nohup, могу ли я также перенаправить стандарт?

Я могу сохранить вывод запроса hive, используя nohup, например:

nohup hive -i transaction_testing.hive > nohup.out 2>&1 &

Насколько я понимаю, 2>&1 перенаправляет стандартную ошибку на стандартный вывод.

У меня такой вопрос, а можно ли в стандарте тоже перенаправить, чтобы все было просто в одном файле?

Поиск в Google показывает, что в linux std в равно 0.

Могу ли я отредактировать фрагмент кода выше, чтобы также включить ввод, а также ошибку std в файле nohup?

Например. предположим, что transaction_testing.hive содержит следующее:

select *
from some_table
where fruits = 'apples';

Я хотел бы вывести файл, содержащий эту команду вверху вместе с результатами запроса внизу.

Если 2>&1 перенаправляет стандартную ошибку на стандартный вывод, будет ли 0>&1 делать то же самое для стандартного входа? Как бы мне объединить все это в одно?

nohup hive -i transaction_testing.hive > nohup.out 0>1&2>&1 &


person Doug Fir    schedule 11.12.2019    source источник
comment
Обычно стандартный ввод (примечание: in = input) перенаправляется из /dev/null, < /dev/null, эффективно, хотя и не фактически, закрывая его.   -  person Tanktalus    schedule 12.12.2019


Ответы (1)


0>&1 означает, что все, записанное на стандартный ввод, вместо этого будет отправлено в FD 1. Но в стандартный ввод ничего нормально не пишет, он используется только для чтения.

Вы можете просто скопировать входной файл в выходной файл, а затем добавить к нему при запуске команды.

cp transaction_testing.hive nohup.out
nohup hive -i transaction_testing.hive >> nohup.out 2>&1
person Barmar    schedule 11.12.2019