Здесь есть две проблемы. Во-первых, простая встроенная команда [
не может содержать &&
. Если вы хотите объединить несколько условий, вам нужно несколько[
:
if [ "$#" -eq 1 ] && [ -f "$1" ]; then
Во-вторых, вы не можете использовать одинарные кавычки вокруг $#
, так как это необходимо расширить. Ваша версия с '$#' -eq 1
сравнивала строку $#
с числом 1.
Все становится намного проще, если вы используете ключевое слово bash [[
вместо этого:
if [[ "$#" -eq 1 && -f "$1" ]]; then
Проблема была с нагревом. Температура процессора была 69 -70 (Получил этой командой:
echo $((`cat /sys/class/thermal/thermal_zone0/temp` / 1000))
из gramian/neotemp/ Чтение температуры процессора Nanopi Neo .
Не знаю как, но система снижала максимальную частоту графического процессора при температуре 70 градусов и повышала при понижении. Так вот, с моей температурой частота часто подскакивала до 200 и до 600 МГц.