Автор Гілка: Стандартний вивід: не працює запис у файл  (Прочитано 2785 раз)

Відсутній noddeat

  • Кореспондент
  • ***
  • дописів: 197
  • Карма: +0/-0
Є консольна програмка, якій кажу переадресовувати вивід до файлу:

$/path/to/program input_file > output.dat

натомість вона виводить все на екран, і output.dat залишається порожнім. Пробував через tee, результат той самий. Що ще порадите зробити? І чому воно не працює?

Якщо це важливо, програма на фортрані. Код, що виводить результат у стандартний аутпут:

write(6,"(3f12.5)") energies(i), dos1(i), dos2(i)
Filenames are infinite in length, where infinity is set to to 255 characters. Peter Collinson, "The Unix File System"

Михайло Даниленко

  • Гість
Значить не у стандартний.
$ /path/prog in.dat &> out.log

Відсутній noddeat

  • Кореспондент
  • ***
  • дописів: 197
  • Карма: +0/-0
дякую, працює!
Filenames are infinite in length, where infinity is set to to 255 characters. Peter Collinson, "The Unix File System"

Відсутній cadca

  • Письменник
  • *****
  • дописів: 955
  • Карма: +0/-0
  • free like beer
$ /path/prog in.dat &> out.log
Це відповідає "$ /path/prog in.dat 2>&1 > out.log" чи "$ /path/prog in.dat 2>&1 1>&2 > out.log"? ::)
« Змінено: 2008-01-27 12:55:42 від cadca »
Ubuntu 20.04/18.04; CentOS 7.x

Михайло Даниленко

  • Гість
There are two formats for redirecting standard output and standard error:

     &>word
and
     >&word

Of the two forms, the first is preferred.  This is semantically equivalent to

     >word 2>&1