创建别名时遇到问题,得到奇怪的消息
[审稿人:请注意,在结束投票后,这个问题已完全重写。]
我最近发现如何在~/.bashrc
为bash定义别名。
但是自从我尝试了这个,我看到了随后的消息,我打开一个终端的时间很长。
我添加了一些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
,并且在一个错误的命令的地方有一个=
。 对于要被视为命令的=
,它必须是带有空格的单个单词。
并查看命令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
是!
alias builtin命令尝试按要求显示三个别名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.