В Debian 9 и 10 с Xfce все, что мне нужно было сделать, это добавить это в/etc/lightdm/lightdm.conf
:
[Seat:*]
autologin-user=david
Несмотря на то, что говорят другие ответы, мой пользователь не должен быть в группе autologin
, и мне не нужно было ничего делать с PAM.
if [ "$1" -lt 1 ] || [ "$1" -gt 100 ]; then
echo 'error (out of range)' >&2
exit 1
fi
Это предполагает, что вещь в $1
на самом деле является целым числом. Вы можете проверить это заранее с помощью
case "$1" in
("" | *[!0-9]*)
echo 'error (not a positive decimal integer number)' >&2
exit 1
esac
Это вызовет exit
, если $1
содержит что-либо, кроме десятичных цифр, или пусто.
Сочетание этих:
case "$1" in
("" | *[!0-9]*)
echo 'error (not a positive decimal integer number)' >&2
exit 1
;;
*)
if [ "$1" -lt 1 ] || [ "$1" -gt 100 ]; then
echo 'error (out of range)' >&2
exit 1
fi
esac
Но делать одно за другим может выглядеть лучше:
case "$1" in
("" | *[!0-9]*)
echo 'error (not a positive decimal integer number)' >&2
exit 1
esac
if [ "$1" -lt 1 ] || [ "$1" -gt 100 ]; then
echo 'error (out of range)' >&2
exit 1
fi
Имейте в виду, что [
арифметические операторы всегда рассматривают числа как десятичные, даже если они начинаются с 0
, в то время как арифметические расширения оболочки в оболочках POSIX рассматривают числа, начинающиеся с 0, как восьмеричные (0100 равно 100 для [
, но 64 для$((...))
).
Используйте арифметику вместо регулярного выражения:
if ! (( num >= 0 && num <= 100 ))
(Это предполагает, что num является числовым. Если вам также нужно убедиться, что $num является числовым, используйте регулярное выражение.)