Bash: прекращение перенаправления - PullRequest
0 голосов
/ 13 июня 2010

У меня есть команда, например, ls-l> file.txt Когда на моем диске недостаточно места, приведенная выше команда просто останавливается, ожидая, что что-то произойдет.Кто-нибудь знает о коде, который я мог бы написать, позволяющий отображать сообщение о нехватке места на моем диске?Например, могу ли я использовать IPC или у вас есть другие идеи?Заранее спасибо.

Ответы [ 2 ]

0 голосов
/ 13 июня 2010

Передача команды по каналу через другую программу, которая будет перехватывать ошибки записи (например, ENOSPC), диагностировать печать и завершаться ошибкой, если больше ничего не может быть сделано.

Эта программа может быть простой как cat:

foobar | cat > file.txt

cat сообщит об ошибке и умрет, а foobar получит SIGPIPE с действием по умолчанию, которое также умрет.

0 голосов
/ 13 июня 2010

вы можете использовать команду df, чтобы определить объем свободного места на диске, и не начинать обработку, если, например, свободного места менее 5 МБ.

Или вы можете проверить количество свободного пространства извашей внутренней программы и напишите предупреждающее сообщение в STDERR.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...