Как сказать bash не расширять псевдонимы
Я знаю, что существует простой синтаксис для bash не расширять псевдонимы. Тем не менее, Google не показывает, и мне лень читать man bash. Также ответ должен быть на этом сайте.
4 ответа
Решение
Поставьте обратную косую черту перед первым символом.
$ alias ls="echo foo"
$ ls
foo
$ \ls
bin
Desktop
Documents
...
Ты можешь использовать command
встроенная команда оболочки. Он будет выполнять только команды, найденные в PATH
или встроенные оболочки. Он не будет выполнять псевдонимы или функции оболочки.
Пример:
alias ls='ls -l'
$ ls
drwxr-xr-x 3 user user 4096 2010-10-11 13:17 dir1
drwxr-xr-x 3 user user 4096 2010-10-15 15:37 dir2
$ function ls() {
> echo hello
> }
$ ls
hello
$ command ls
dir1 dir2
Тип shopt -u expand_aliases
в оболочку bash (ключ -u для unset). Я рекомендую прочитать справочную страницу для shopt.
Как уже предположил @bossNova, чтобы предотвратить расширение псевдонимов:
shopt -u expand_aliases
И для тех, кому интересно, установить расширение псевдонима:
shopt -s expand_aliases