Ubuntu уже использует systemd
. Чтобы изменить режим по умолчанию при загрузке, используйте
systemctl set-default multi-user.target
Чтобы вернуться к графическому режиму по умолчанию, используйте
systemctl set-default graphical.target
bash поддерживает расширенные регулярные выражения, и вы можете выполнять все проверки за одну, например:
[[ $file =~ (img|png|jpg|tif) ]] && echo do-something
чтобы проверить, содержит ли переменная файл любую из этих заданных строк (обратите внимание, что я использовал=~
оператор для сопоставления регулярных выражений ).
В качестве альтернативы регулярному выражению менее элегантным методом было бы объединение условных выражений с использованием OR
-, который в Bash представляет собой двойную вертикальную черту(||
):
[[ "$fl" == *"img"* || "$fl" == *"png"* || "$fl" == *"jpg"* || "$fl" == *"tif"* ]] && mv "$flimg" "$out"
Двойной канал также будет работать в оболочке Bourne или Korn -, используя только одинарные фигурные скобки([]
)и изменяя ==
на=
(только для Bourne ), например
[ "$fl" = *"img"* || "$fl" = *"png"* || "$fl" = *"jpg"* || "$fl" = *"tif"* ] && mv "$flimg" "$out"
Используя стандартный синтаксис POSIX sh
, который также действителен в bash
, вы можете использовать оператор case
здесь:
case $fl in
*img*|*jpg*|*png*|*tif*)
mv -- "$flimg" "$out"
esac
или, как «один -вкладыш»,
case $fl in (*img*|*jpg*|*png*|*tif*) mv -- "$flimg" "$out"; esac
Если вы включите опцию оболочки extglob
с помощью shopt -s extglob
, вы также можете использовать
[[ $fl == *@(img|jpg|png|tif)* ]] && mv -- "$flimg" "$out"
Если вы хотите проверить только суффикс имени файла после последней точки в имени файла в$fl
:
case ${fl##*.} in (img|jpg|png|tif) mv -- "$flimg" "$out"; esac
или после shopt -s extglob
,
[[ ${fl##*.} == @(img|jpg|png|tif) ]] && mv -- "$flimg" "$out"
Стандартное расширение ${variable##pattern}
удаляет самую длинную строку префикса из $variable
, соответствующую pattern
. Использование *.
в качестве шаблона означает удаление всего до последней точки в значении включительно.
Обратите внимание, что все сопоставления шаблонов в этом ответе выполняются с помощью шаблонов оболочки, а не регулярных выражений.