согласно руководству bash порядок расширений оболочки следующий: расширение скобок, расширение тильды, расширение параметров и переменных, подстановка команд, арифметическое расширение, разделение слов и расширение имени пути . также указано, что перенаправления происходят до выполнения команды, то есть после расширения оболочки. Таким образом, становится понятно, что такие команды, как:
redir='>'
echo value $redir file
и
echo value $(echo '>') file
, помещают значение в файл файл .
К сожалению, это не так, потому что сначала выполняется синтаксический анализ командной строки, а на этом этапе идентифицируются только маркеры перенаправления. Позже, перед выполнением команды, перенаправления выполняются на основе этих токенов.
eval curl $ BLAH $ ($ IS_VERBOSE && echo '-i' || echo '> / dev / null')
работает путем повторного анализа команды, таким образом идентифицируя перенаправления, но также выполняет расширение оболочки , с которым немного сложно работать и может привести к неожиданному поведению.
примечание: в bash есть специальная обработка для > $ var
и > & $ var
Ваша версия free
имеет правильную идею. По умолчанию он объединяет буферы и кеш в своем отчете. Это потому, что они в основном одно и то же. Они оба запоминают компьютер в ОЗУ (быстрее, чем вторичное хранилище :Диски и SSD ), что он уже видел при чтении Диска и SSD.
Если операционная система считает, что память лучше используется чем-то другим, она может освободить ее. Поэтому не беспокойтесь о буфере и кеше.
Однако просмотр DVD может вызвать увеличение буфера и вытеснение другого содержимого буфера/кэша. Поэтому вы можете использовать nocache для запуска проигрывателя DVD (, если он вызывает проблему).