zsh
одна из нескольких оболочек (другое быть tcsh
(which
порожденный как a csh
сценарий для csh
пользователи, которые также имели его ограничение, tcsh
сделанный этим встроенное как улучшение)), где which
делает что-то разумное, так как это - встроенная оболочка, но так или иначе Вы или Ваша ОС (через некоторых rc
файл), повредил его путем замены его вызовом к системе which
команда, которая не может сделать ничего разумного надежно, так как это не имеет доступа к интернам оболочки так, не может знать, как та оболочка интерпретирует название команды.
В zsh, всем из which
, type
, whence
и where
встроенные команды, которые все используются для обнаружения о том, каковы команды, но с различными выводами. Они - все там по исторической причине, можно получить все их поведения с различными флагами к whence
команда.
Можно получить детали того, что каждый делает путем выполнения:
info -f zsh --index-search=which
Или введите info zsh
, затем поднимите индекс с i
, и введите встроенное имя (завершение доступно).
И избегайте использования /usr/bin/which
. Нет никакой оболочки в наше время где это which
необходим. Как Timothy говорит, используйте встроенное, что Ваша оболочка предусматривает это. Большинство оболочек POSIX будет иметь type
команда, и можно использовать command -v
только получить путь команды (хотя оба type
и command -v
являются дополнительными в POSIX (но не Unix, и больше в LSB), они доступны в большинстве, если не все подобные Границе оболочки Вы, вероятно, будете когда-либо сталкиваться).
(BTW, это похоже /usr/bin
появляется дважды в Вашем $PATH
, Вы могли добавить a typeset -U path
к Вашему ~/.zshrc
)
Открыть этот файл:
sudo vim /lib/systemd/system-sleep/hdparm
Содержание:
#!/bin/sh case $1 in post) /usr/lib/pm-utils/power.d/95hdparm-apm resume ## Paste your command to run your script ;; esac
Ваша команда будет выполняться с правами администратора .