Обратите внимание, что ваша строка
[ "${#}" -eq 1 ] || echo "Invalid number of arguments, expected one."; exit 1
это то же самое, что и
[ "${#}" -eq 1 ] || echo "Invalid number of arguments, expected one."
exit 1
(;
без кавычек в большинстве случаев можно заменить символом новой строки)
Это означает, что оператор exit 1
всегда выполняется независимо от того, сколько аргументов было передано сценарию. Это, в свою очередь, означает, что сообщение The given argument is empty.
никогда не будет напечатано.
Чтобы выполнить более одного оператора после теста с использованием «короткого -синтаксиса схемы», сгруппируйте операторы в {...; }
. Альтернативой является использование правильного оператора if
(, который, ИМХО, выглядит чище в сценарии):
if [ "$#" -ne 1 ]; then
echo 'Invalid number of arguments, expected one.' >&2
exit 1
fi
У вас такая же проблема со вторым тестом.
Относительно
[ -z "" ] && echo A || echo B
Это будет работать для данного примера, но общий
some-test && command1 || command2
не будет ли не таким же, как
if some-test; then
command1
else
command2
fi
Наоборот, это больше похоже на
if ! { some-test && command1; }; then
command2
fi
или
if some-test && command1; then
:
else
command2
fi
То есть, если тест или первая команда завершатся неудачно, выполняется вторая команда, что означает, что она потенциально может выполнить все три задействованных оператора.
У вас мало оперативной памяти? Я использую htop, чтобы следить за использованием оперативной памяти. Ваш графический процессор, вероятно, использует общую память, поэтому при необходимости он будет извлекать данные из ОЗУ. fcitx -qimpanel, кажется, является частью рабочего стола Mate.
MX150 — это специальный графический процессор Nvidia GeForce MX150. GPU, вероятно, использует драйверы Nouveau с открытым исходным кодом. Вы должны получить лучшую производительность с проприетарными драйверами Nvidia,но я подозреваю, что это означает более высокое использование ОЗУ.
https://www.linuxbabe.com/ubuntu/install-nvidia-driver-ubuntu-18-04
Xorg необходим для управления дисплеями. 185 МБ не кажется большим, но снижение глубины цвета с 32 бит до 16 бит и уменьшение разрешения экрана — тоже способы снизить использование оперативной памяти графического процессора. Некоторые настольные компьютеры используют больше оперативной памяти, чем другие. Попробуйте более легкий рабочий стол, такой как Lubuntu или Xubuntu, если вам нужно меньшее использование оперативной памяти.
sudo apt-get install lubuntu-desktop
Это должно снизить общее использование оперативной памяти.
Если у вашего ноутбука как минимум 4 ГБ ОЗУ, я подозреваю, что у вас нет проблем с использованием ОЗУ в Ubuntu Mate 18.04. Стандартная установка Mate занимает менее 1 ГБ от общего объема оперативной памяти.