
Допустим, я хочу создать псевдоним с именем ss
для команды sudo -s
. Но ss
уже есть существующая команда, поэтому я хочу создать еще один псевдоним с именем sst
для команды ss
.
Если использовать только обычные имена команд, это невозможно, поскольку псевдонимы:
- Не установлены таким образом, чтобы соблюдался порядок, и
- Ссылайтесь на другие псевдонимы, а не только на команды
Итак, если я попробую сделать следующее:
alias sst='ss'
alias ss='sudo -s'
Выполнение команды sst
приводит к запуску sudo -s
, что не входит в мои намерения.
Как это может быть сделано?
решение1
Чтобы вышеизложенное сработало, вам необходимо указать абсолютный путь к команде, которую вы хотите запустить.
Это можно сделать следующим образом:
alias sst='/usr/bin/ss'
alias ss='sudo -s
Однако не всегда можно быть уверенным, ss
что вы находитесь в нужном месте, поэтому более обоснованным подходом будет:
alias sst='$(which ss)'
alias ss='sudo -s
Теперь вышеприведенный код работает так, как и ожидалось, где ss
запускается sudo -s
и sst
выполняется команда ss
.