Команда была неверной. Вместо полного доменного имени первым параметром должна быть зона :
.sudo named-checkzone example.com /var/named/example.com.zone
Для простоты я приведу пример с командой "cat" ("cat" просто читает ввод и записывает его )Когда вы вводите «cat < input», команда cat будет получать данные из файла «input». Однако, если вы наберете «cat << end _of _input», вы находитесь в состоянии (здесь -документа ). Это означает, что ваша оболочка прочитает все введенные вами строки. введите (с клавиатуры ), пока не напишите строку «конец _of _input» (большую часть времени ctrl _d также будет работать ), а затем выполнит эту команду cat с введенным вами вводом (, исключая конец строки _ввода _, конечно ), и поэтому он зависает, потому что ждет, пока вы введете ввод
Что касается перенаправления стандартного ввода, вам просто нужно написать «command < input _file» Для перенаправления вывода команды в файл у вас есть два варианта:
1 -"cmd > output" (обратите внимание, что есть только один ">" ), в этом случае, если файл с именем "output" уже существует, он будет перезаписан выводом вашей команды.
2 -"cmd >> output" (обратите внимание на два ">>" ):Если файл "output" существует, добавьте к нему вывод команды. Что касается того, как заставить команду получать ввод из вывода предыдущей команды, вы можете использовать «конвейер»
как простой пример :"ls | cat", это перенаправит вывод команды "ls" на ввод команды "cat". (Тот факт, что процесс выполняется в фоновом режиме, не имеет значения, если процесс может выполняться в фоновом режиме.)
Надеюсь, это поможет, удачи.
Ваш первый пример должен начинаться так
java Bagels < in.txt
В том виде, как он написан, выполняется Bagels
с стандартным вводом , полученным из файла in.txt
¹. Если бы вы добавили один конечный амперсанд &
,ваша программа будет работать в фоновом режиме, оставляя командную строку вашего терминала готовой для ввода дополнительных инструкций.
Я думаю, что ваш второй пример может быть таким, но меня несколько смущают ваши in.txt
и out.txt
; как правило, не рекомендуется подавать вывод одной программы на ввод другой и принимать вывод второй в качестве ввода первой.
java Bagels < in.txt | player.py > out.txt
Это делает присоединение in.txt
к стандартному вводу программы Java(<
ИЗ файла ), прикрепляет его стандартный вывод к стандартному вводу введите player.py
и запишите стандартный вывод вывода программы Python в файлout.txt
(>
В файл в режиме только для записи с усечением, замените на >>
для добавления или 1<>
для открытия в режиме чтения+записи без усечения ).
Наконец, чтобы ответить на вопрос, который вы написали в своем первом предложении «Есть ли способ запустить процесс в фоновом режиме с перенаправлением как ввода, так и вывода? », вы могли бы собрать все это вместе. вот так
java Bagels < in.txt > out.txt &
¹ здесь открыто в режиме только чтение -, замените на <>
или 0<>
на ksh93, чтобы открыть в режиме чтения+записи, хотя на самом деле крайне редко требуется иметь стандартный ввод в режиме чтения+записи