Взятие вывода/dev/tty в переменную

Метаданные являются "Данными о Данных".

В случае *отклоняют файловую систему, метаданные, используемые fsck от заголовка на каждом блоке данных указывает назад на запись каталога или следующий блок данных и соответствующие записи в каталоге. fsck сканирует блоки и проверяет, что записи каталога соответствуют и что прямые указатели к следующему блоку корректны.

Это варьируется значительно между файловыми системами. На самом деле то, какие метаданные хранятся и где они хранятся, - то, что большинство дифференцирует, различные *отклоняют файловые системы. Более современные также сохраняют файл журнала изменений в структурах каталогов.

1
04.08.2011, 00:10
1 ответ

Короче говоря: просто удалите >/dev/tty часть от dbbackup.sh; используйте просто:

echo $TARFILE

Это распечатает $TARFILE к стандартному выводу, т.е. на экран, если Вы будете работать dbbackup.sh в терминале, или к файл/канал, если перенаправление существует (как это происходит с одинарной левой кавычкой оболочки /$(...) расширение).

Существует также другая причина, почему вещь не будет работать даже при исправлении проблемы выше: Ваш dbbackup.sh сценарий печатает имя файла tar к стандартному выводу, но в строке

DBBACKUP="`dbbackup.sh >&/dev/null`"

Вы отбрасываете любой вывод, прибывающий из dbbackup.sh (путем перенаправления его к /dev/null). Если Вы только хотели отбросить ошибки, то используйте 2>/dev/null перенаправление.

Более длинная история: строка

echo $TARFILE > /dev/tty

перенаправляет вывод echo команда к /dev/tty (терминал, к которому текущий процесс присоединяется) вместо того, чтобы печатать к потоку стандартного вывода, совместно использованному другими командами в dbbackup.sh сценарий. Поэтому, когда Вы далее перенаправляете вывод dbbackup.sh в dbbackup.sh >&/dev/null, это второе перенаправление не влияет echo команда.

Вы могли бы хотеть читать немного больше на замене перенаправления и команды оболочки.

5
27.01.2020, 23:17

Теги

Похожие вопросы