Если py EulerianCycle.py euleriancycle.txt
записывает в стандартный поток вывода (что, как я предполагаю, и делает, поскольку в противном случае вы не смогли бы передать его в кот
) тогда кот
здесь совершенно излишен - вы можете напрямую перенаправить стандартный вывод, указав абсолютный или относительный путь к вашему выходному файлу:
py EulerianCycle.py euleriancycle.txt > выходы/euleriancycleout.txt
(примечание: каталог выходы/
должен уже существовать).
Ни одна из других ваших команд не работает так, как вы можете себе представить.
в py EulerianCycle euleriancycle.txt > cat euleriancycleout.txt
, оболочка создает файл с именем кот
в текущем каталоге и перенаправляет вывод ру ЭйлерианЦикл
к нему, проходя обе euleriancycle.txt
и euleriancycleout.txt
к нему в качестве входных аргументов.
в py EulerianCycle.py euleriancycle.txt | кошка > cd outputs/euleriancycleout.txt
, оболочка создает файл с именем CD
в текущем каталоге, кот
читает выходы/euleriancycleout.txt
и записывает в файл CD
, игнорируя стандартный ввод из канала (кот
читает стандартный ввод только тогда, когда ему не заданы входные файлы или явный -
).
Возможно, то, к чему вы стремились, заключалось в том, чтобы передать вывод в подоболочка нравиться:
py EulerianCycle.py euleriancycle.txt | (выход cd; cat > euleriancycleout.txt)
или же
py EulerianCycle.py euleriancycle.txt | (cd outputs && cat > euleriancycleout.txt)
Здесь, кот
читает стандартный ввод подоболочки, который предоставляется каналом, после перехода в целевой каталог. Вторая версия создает только euleriancycleout.txt
если CD
команда выполнена успешно; первый создает его в текущем каталоге, если CD
терпит неудачу.