.
Граница и команда оболочки POSIX в то время как source
команда C-Shell.
Некоторые производные Оболочки Bourne как bash
, zsh
и большинство реализаций ksh
также имейте a source
команда, которая обычно является псевдонимом для .
хотя для ksh с различиями.
Для удара и zsh, .
и source
ведите себя то же, но их поведение затронуто тем, работают ли они в режиме POSIX или не ¹.
POSIX требует что .
управляйте выходит из оболочки, если она не может открыть файл для чтения и требует, чтобы файл был найден посредством поиска каталогов в $PATH
если обеспеченный путь не содержит a /
.
zsh и удар .
и source
ведите себя, поскольку POSIX требует когда в режиме POSIX, и как pdksh's source
если не это, они не выходят из сценария, если им не удается открыть файл для чтения (то же как command .
) и поиск файл в $PATH
и текущий каталог, если обеспеченный путь не содержит a /
.
ksh's AT&T source
не выходит из оболочки ни один, но не ищет файл в текущем каталоге.
В целом, в подобных Границе оболочках (хотя не Оболочка Bourne, которая не имеет a command
встроенный), если Вы хотите последовательное поведение, Вы могли бы сделать
command . the-file-to-source || handle-error
И если the-file-to-source предназначен, чтобы быть в текущем каталоге, убедиться записать:
command . ./the-file-to-source || handle-error
В sh
сценарии (где sh
POSIX sh
) необходимо смочь полагаться на вышеизложенное поведение POSIX.
¹ zsh
и bash
включите режим POSIX при вызове как sh
. Для bash
также когда это получает POSIXLY_CORRECT
в его среде (даже когда названо как удар даже при том, что нет никакой названной команды POSIX bash
), или когда это получает SHELLOPTS=posix
, или при вызове bash --posix
или bash -o posix
или после a set -o posix
. С zsh Вы используете emulate sh
эмулировать sh
. Эмуляции изменяют целый набор опций, которые изменяют поведение zsh. В этом случае опция POSIX_BUILTINS
.
В ударе можно проверить если в режим POSIX или не с (неPOSIX), [ -o posix ]
команда. В zsh Вы проверяете вывод emulate
видеть, находитесь ли Вы в sh
эмуляция, или [[ -o posixbuiltins ]]
проверять, включена ли та конкретная опция. Можно также временно включить данный режим эмуляции с emulate -L
(для эмуляции только в текущем локальном объеме).
К сожалению, нет никакой известной возможности управлять thinklight на том ноутбуке, кроме прочь. Можно попробовать его, когда thinklight идет echo 0 > /sys/class/leds/tpacpi\:\:thinklight/device/leds/tpacpi\:\:thinklight/brightness
. Помещение 255 как значение для включения его больше не работает.
Возможно, это имеет некоторое отношение к новой подсветке, но я не уверен.
Плагин говорит, что ему нужна ibm-acpi, но это удерживается от использования насколько я могу сказать, и thinkpad_acpi загружается по умолчанию на моей машине:
Хотя имя модуля ядра изменилось, интерфейс пространства пользователя не имеет. Через думать-свет все еще управляют /proc/acpi/ibm/light
. Быстрые 'строки' начинают работу pidgin-blinklight
шоу, что путь находится все еще в двоичном файле.
Таким образом, мое образованное предположение - то, что это должно работать, как.
Я знаю, что этот вопрос древний, но для всех, кому интересно, следующее решение работает на моем T430s под Kubuntu 14.04:
https://www.reddit.com/r/thinkpad/comments/5f87sg/hint_blinking_the_thinklight_with_software_on_new/
На случай, если ссылка на reddit исчезнет: скомпилируйте это в исполняемый файл ec_access:
https://github.com/torvalds/linux/blob/master/tools/power/acpi/tools/ec/ec_access.c
Затем сделайте
./ec_access -w 0x3b -v 16
для включения, и
./ec_access -w 0x3b -v 14
для выключения.