tcsh script - Выполнение команды с аргументами и запись вывода в файл

У меня есть программа readtree, которая читает древовидную структуру и выводит вывод в оболочку. Я хочу перенаправить этот вывод оболочки в файл. Эта программа принимает только один аргумент: имя файла.

Я попытался выполнить это со следующим:

./readtree имя_файла.tree 1>&! написаноOutput.txt

и даже

./readtree filename.tree 1>&! написаноOutput.txt

Но в любом случае оболочка думает, что «1>&! writeOutput.txt» являются дополнительными аргументами, и моя программа выдает ошибку, жалуясь на то, что передается более одного аргумента.

Мой вопрос: как я могу сообщить оболочке, чтобы отделить команду перенаправления вывода от аргументов программы, которую я хочу запустить? Кроме того, скажем, я передал переменную программе в качестве аргумента

например. ./program firstArgument $secondArgument 1>&! написаноOutput.txt

Нужен ли мне какой-то дополнительный синтаксис для учета переменного аргумента?

Спасибо за помощь!


person stephengotlost    schedule 09.02.2014    source источник
comment
Откуда вы взяли этот синтаксис перенаправления? Это похоже на смесь sh (1>) и csh (>&!). Дополнительный аргумент, на который жалуются, это 1; потерять его, и он должен работать как есть.   -  person Mark Reed    schedule 09.02.2014


Ответы (1)


Посмотрите здесь: http://www.tcsh.org/tcsh.html/Input_output.html

Существует хорошее руководство по доступным параметрам перенаправления.

Если вы хотите разделить stderr и stdout, вы можете использовать:

(command > output-file) >& error-file
person Oo.oO    schedule 04.01.2016