2015-10-28 1 views
1

По какой-то причине, когда я пытаюсь перенаправить ошибки в файл с помощью 2>, он не работает, и я получаю сообщение, которое обрабатывает «2» и «>» как отдельный.bash «2>» не работает, превращается в «2>»

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

Например, если я типа:

rm dir1 2> err1 

Это не пересылает сообщение об ошибке в файл. При нажатии на стрелку вверх линию превращается в:

rm dir1 2 > err1 

я бы очень признателен за любые идеи по поводу этого довольно странного вопроса. Благодаря

+6

Вы не используете bash. –

+2

post echo $ SHELL; –

+0

Когда я пишу «какой баш», я получаю «/ bin/bash» , когда пишу echo $ SHELL Я получаю «tcsh» – Ron

ответ

0

Вы не используете Баш в соответствии с вашим комментарием, в Tcsh вы не можете переадресовать только один стандартный поток в файл, но вы можете перенаправить все потоки одновременно, используя >& как так

rm dir >& outputfile1 

See this answer for more info

+0

Спасибо. Я попытался перейти на bash на «chsh -s/bin/bash», но получил «Небезопасную зависимость в системе во время работы setuid в /usr/local/etc/acct.new/acct_admin строке 45. Любые идеи? – Ron

+0

Вы можете попробовать позвонить' ''/bin/bash''', чтобы получить bash только для этого сеанса. Если это не сработает, вам может потребоваться обратиться к вашему sysadmin о поддержке bash. Тем не менее csh redirection должен работать, потому что '' 'rm''' , пожалуйста ** сделайте ** попробуйте '' 'rm dir1> & output.file''', прежде чем пытаться перепутаться с bash. – Ritave

+0

@ Добавьте дополнительную информацию о среде: например, тип ОС. К слову, возможно изменение в [/etc/passwd](http://linux.die.net/man/5/passwd) загружает оболочку по умолчанию для некоторого пользователя. – Thomas8