Я использую Debian и столкнулся с похожей проблемой, во-первых, я не буду рекомендовать скрипт, потому что он не работает на экране блокировки.
если вы используете gnome, установите настройки gnome -и у него есть опция.
В качестве альтернативы отредактируйте файл /etc/systemd/logind.conf, просто раскомментировав строку HandleLidSwitch=suspend.
это сработало для меня.
Согласно требованиям POSIX , некоторые слова (, включая for
), должны быть либо:
Это не тот случай. Вот почему for
не понимается оболочкой и сообщает об ошибке.
Этот вопрос (о временной IFS )очень похож на Когда можно использовать временную IFS для разделения полей? . Но этот ответ охватывает только простые команды (Это составная команда ).
Дополнительно:
Значение IFS влияет только на расширения(расширения переменной ).
Значение IFS должно быть установлено в предыдущей команде, прежде чем оно подействует.:
$ a="one:two:three"
$ echo $a
one:two:three
$ (
> IFS=":"
> echo $a
> )
one two three
$ ( IFS=":"; echo $a )
one two three
Но НЕ:
$ ( IFS=":" echo $a )
one:two:three
Для этого нужно отложить выполнение команды:
$ ( IFS=":" eval echo '$a' )
one two three
Итак, для вашего скрипта вам нужно будет сделать что-то вроде:
b="720:500:560:130"
( IFS=":";
for a in $b ;
do echo "$a" ;
done
)
Обратите внимание, что, поскольку $b
раскрывается без кавычек, любой символ подстановки (*,[, ? и другие с набором extglob )также будут расширены. Возможно, создание списка файлов вместо одного.
Вместо того, чтобы бороться с магией IFS, используйте функции «пути» Стивена Кольера. Они допускают новый тип данных вbash
:списке, разделенном двоеточием -. addpath
, delpath
, listpath
и т. д. Я использую эти функции на своих PATH
, MANPATH
, чтобы разрешить locate
поиск офлайн-медиа и вообще bash
задачи.
Вот как, из моего ответа AskUbuntu:
Я использую функции bash _path _Стивена Коллиера, описанные в Linux Journal еще в 2000 году:
https://www.linuxjournal.com/article/3645https://www.linuxjournal.com/article/3768https://www.linuxjournal.com/article/3935
Функция addpath
добавляет запись в путь, только если ее там нет изначально. delpath -n
удаляет из пути все несуществующие -каталоги.
Вы можете получить файл pathfunc.tgz
изhttps://web.archive.org/web/20061210054813/http://www.netspinner.co.uk:80/Downloads/pathfunc.tgz