Как я могу проверить мой bashrc, если уже был установлен псевдоним?

Как я могу проверить мой bashrc, если уже был установлен псевдоним.

Когда я создаю файл bashrc, у которого есть имя функции, скажем, весело, а моя текущая среда также имеет псевдоним.

Я попробовал unalias fun, но это даст мне ошибку, которая не получится, если моя среда уже не будет иметь этот псевдоним.

Итак, в моем bashrc, в моей функции fun, я хочу проверить, был ли установлен псевдоним, а затем unalias, который.

Ответы

Ответ 1

Если вы просто хотите убедиться, что псевдоним не существует, просто удалите его и перенаправьте свою ошибку на /dev/null, как это:

unalias foo 2>/dev/null

Вы можете проверить, установлен ли псевдоним таким образом:

alias foo 2>/dev/null >/dev/null && echo "foo is set as an alias"

Как указано в man-странице:

For each name in the argument list for which no  value  is  sup-
plied,  the  name  and  value  of  the  alias is printed.  Alias
returns true unless a name is given for which no alias has  been
defined.

Ответ 2

Просто используйте команду alias как

alias | grep my_previous_alias

Обратите внимание, что вы действительно можете использовать unalias, чтобы вы могли сделать что-то вроде

[ `alias | grep my_previous_alias | wc -l` != 0 ] && unalias my_previous_alias

Это приведет к удалению псевдонима, если он был установлен.

Ответ 3

Вы можете использовать type, чтобы увидеть, существует ли команда или нет или нет.

Он вернет статус ошибки, если команда не найдена.

Например, я определяю следующий псевдоним:

$ alias foo="printf"

Затем проверьте следующие сценарии:

$ type foo >/dev/null && echo Command found. || echo Command not found.
Command found.

или специально для псевдонима:

$ alias foo && echo Alias exists || echo Alias does not exist.

или проверить, является ли это псевдоним или регулярная команда:

$ grep alias <(type foo) && echo It is alias. || echo It is not.

Чтобы проверить, определен ли псевдоним в ваших rc файлах, его необходимо проверить вручную, например. по:

[ "$(grep '^alias foo=' ~/.bash* ~/.profile /etc/bash* /etc/profile)" ] && echo Exists. || echo Not there.

Ответ 4

Хорошее bash -специальное решение для проверки псевдонимов использует массив BASH_ALIASES, например:

$ echo ${BASH_ALIASES[ls]}

Ответ 5

Для упрощения создания файла bashrc вы можете использовать следующее:

  • Убедитесь, что существует псевдоним.
  • Унифицирует его.
  • Определите функцию

alias fun=''
unalias fun
fun ()
{
   # Define the body of fun()
}