Это должно работать, я только что протестировал его в ksh
:
if [[ $((m-1)) -eq 1 ]]; then echo "Equal"; fi
Работает и с -gt
.
Нет, я бы не сказал, что есть штрафы по вводу-выводу.
Возможно, эта фраза является чрезмерным упрощением. Но внутри устройств ядра, файлов, на все можно ссылаться с помощью файлового дескриптора, и все дескрипторы отображаются на виртуальную файловую систему, и, как и в случае с файловой системой, можно ссылаться на конкретный файл с помощью имя (дескриптор).
Таким образом, ядро не обязательно будет передавать, например, данные / proc / vmstat
через файловую систему диска, однако вам не нужно делать ничего особенного для чтения статистики, вы можете прочитать данные с помощью команды cat
.
try
watch head /proc/vmstat
Вы увидите, что числа меняются каждый интервал.
Очевидно, что некоторые файлы имеют особые характеристики и могут потребовать дополнительных операций для управления, чем простое открытие / закрытие / чтение / запись / поиск, например, установка скорости передачи на последовательном устройстве имеет смысл, но не на файле на диске.
Все может быть файлом, но не все реально.
Рассмотрим содержимое /proc
. В моей системе Linux есть файл /proc/uptime
, текущее содержимое которого:
831801.89 1241295.64
Если я cat
файл снова, он будет содержать другие числа. Мой жесткий диск подключен только для чтения, поэтому не может быть такого, что что-то записывает эти числа на диск каждую долю секунды.
На самом деле, ничего в каталоге /proc
на диске нет. Каждое взаимодействие с файлом в этом каталоге просто запускает код ядра, что обусловлено природой procfs
.
Затем есть временные файлы. Скорее всего, ваш /tmp
смонтирован tmpfs
, то есть его содержимое хранится в оперативной памяти, а не на диске.
Еще одно интересное место - /dev/tcp
, для связи с сетью. В некоторых системах он существует только под bash
, но не под другими оболочками, поэтому он не может быть на диске в этих системах.
Все эти примеры показывают, что файловая система и жесткий диск разделены, и философия "Все есть файл" не влияет на производительность из-за скорости ввода-вывода.