首页 > 代码库 > bash配置文件中alias错误会引起shell异常
bash配置文件中alias错误会引起shell异常
1. 先介绍下alias(别名)的用法
alias la=‘ls -a‘ alias b=‘cd ..‘ 等等
alias 是个好东西,可以在用shell时省很多时间
2. 但有一天我发现执行shell脚本的时候,if 语句不能用了,会报以下错误:
bash: build/envsetup.sh: line 30: syntax error near unexpected token `then‘
bash: build/envsetup.sh: line 30: ` if [ ! "$T" ]; then‘
这是我在编译安卓4.2.2系统时运行 source setenv 时,发生的,很是郁闷!
(而且还有其他异常,输入一些命令按Tab键没有提示了,如:apt-get install xxx)
3. 于是各种找,终于发现了是 .bashrc文件的alias中出现了shell脚本的关键字if:alias if=‘ifconfig‘
4. 总结
应该是shell解释脚本时,把“if” 都替换成了“ifconfig”,肯定报错,所以在写配置文件的时候,
一定要注意不要使用关键字和出现语法错误。
5. 后果
之前因为这个错误重装了linux mint, 结果还是出现了这个错误,学艺不精啊。
我可能一辈子都找不到这个错误,而有些人可能一辈子都不会出现这个错误。
我是不幸的,也是幸运的!
6. 最后
附我常用的alias
alias ls='ls --color=tty' alias l.='ls -d .* --color=tty' alias la='ls -a' alias ll='ls -l' alias llh='ls -l -h' alias l='ls' alias c='cd' alias mv='mv -i' alias rm='rm -i' alias vi='vim' alias b='cd ..' alias py='python' alias md='mkdir' alias mk='make' alias mkcl='make clean' alias m='man' alias t='top' alias cl='clear' alias sudo='sudo ' # alias if='ifconfig' # I hate u! alias ip='ifconfig' alias mo='mount' alias um='umount' alias gcc='gcc -Wall' alias grep='grep --colour=auto'
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。