Одна опция состояла бы в том, чтобы записать Ваши подсказки в stderr
вместо stdout
. Они будут видимы на терминале, но не в output.txt
.
Другая опция не состоит в том, чтобы использовать перенаправление для Вашего вывода, но взять выходное имя файла в качестве параметра и открытый что файл самостоятельно. Можно затем использовать stdout
для Ваших подсказок. (Это более гибко. Можно решить то, что переходит только к файлу, что переходит только к экрану, и потенциально что переходит к обоим.)
Если Вы не можете изменить код, единственная опция состоит в том, чтобы использовать tee
или некоторая другая такая утилита. Буферизация может быть проблемой; stdbuf
мог бы помочь с этим.
Необходимо выйти из символа правильно в зависимости от оболочки, которую Вы используете, если Вы можете/, хотят положиться внутреннее завершение. Например, в Bash, корректный способ выйти из него был бы:
$ ls $'Foo\uFFFDo'
Foo�o
Посмотрите раздел по заключению в кавычки в странице справочника Вашей оболочки.
�%93
доберется Ö
но я не могу получить доступ к каталогу с тем именем.
– noob
15.09.2013, 19:30
LC_ALL=C ls -b
. Отредактируйте свой вопрос. – Gilles 'SO- stop being evil' 17.09.2013, 02:43