[Рецензенты: обратите внимание, что вопрос был полностью переписан после закрытых голосований.]
Недавно я обнаружил, как я могу определить псевдонимы для bash в ~/.bashrc
.
Но так как я попробовал это, я вижу следующие сообщения каждый раз, когда открываю терминал.
Я добавил несколько псевдонимов bash к своему. Я пытался создать ярлыки, используя псевдоним, но мне не удалось, и каким-то образом мне удалось получить сообщение ниже каждый раз, когда я открываю новый терминал.
bash: alias: UIC: not found
bash: alias: =: not found
bash: alias: sudo openvpn --config ~/vpn/UIC-alopez78.ovpn: not found
bash: alias: mat: not found
bash: alias: =: not found
bash: alias: cd /home/alexisblopez/MATLAB/R2014a/bin/: not found
bash: alias: lab: not found
bash: alias: =: not found
bash: alias: ./matlab: not found
~$
Это сбивает с толку; это не говорит об ошибке, но потому что мои псевдонимы не работают,
Я думаю, что с ними что-то не так - я не знаю что!
Вероятно, Вы определили эти псевдоним в .bashrc
файл:
alias UIC = 'sudo openvpn --config ~/vpn/UIC-alopez78.ovpn'
alias mat = 'cd /home/alexisblopez/MATLAB/R2014a/bin/'
alias lab = './matlab'
необходимо отредактировать .bashrc
и удалить пространство прежде и после =
:
alias UIC='sudo openvpn --config ~/vpn/UIC-alopez78.ovpn'
alias mat='cd /home/alexisblopez/MATLAB/R2014a/bin/'
alias lab='./matlab'
сохраняют Ваши изменения и работают source .bashrc
Сообщения об ошибках выглядят интересными.
Строки
bash: alias: =: not found
это: bash
дает нам сообщение, что это - встроенная команда, alias
, дал ему сообщение, "не найденное" для чего-то названного "="
.
Теперь, alias
включен, и существует a =
в месте, где это принято за команду. Для =
чтобы рассматриваться как команду, это должно быть отдельное слово с пробелами.
И рассмотрение синтаксиса команды alias
(см. help alias
ниже), это неправильно: =
должен использоваться без пробелов вокруг, как это:
alias foo='bar baz'
Так, идея состоит в том, что существуют определения псевдонима, которые имеют дополнительное пространство вокруг =
, который разделяет один параметр командной строки alias
в три аргумента.
Давайте сделаем эксперимент: мы можем копировать Ваше сообщение об ошибке как это?
$ alias mat = 'foo bar'
bash: alias: mat: not found
bash: alias: =: not found
bash: alias: foo bar: not found
Да!
Псевдоним встроенная команда пытается показать определения трех псевдонимов mat
, =
, и foo bar
, согласно просьбе, и жалуется для не нахождения их.
Решение: читать help alias
, найдите определения псевдонима и удалите пространство вокруг =
.
$ help alias
alias: alias [-p] [name[=value] ... ]
Define or display aliases.
Without arguments, `alias' prints the list of aliases in the reusable
form `alias NAME=VALUE' on standard output.
Otherwise, an alias is defined for each NAME whose VALUE is given.
A trailing space in VALUE causes the next word to be checked for
alias substitution when the alias is expanded.
Options:
-p Print all defined aliases in a reusable format
Exit Status:
alias returns true unless a NAME is supplied for which no alias has been
defined.