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'

bash配置文件中alias错误会引起shell异常

时间: 2024-10-01 07:21:40

bash配置文件中alias错误会引起shell异常的相关文章

PHP 错误与异常 笔记与总结(5)配置文件中与错误日志相关的选项

[记录错误(生产环境)] php.ini: ① 开启 / 关闭 错误日志功能 log_errors = On ② 设置 log_errors 的最大字节数 log_errors_max_len = 1024 其他: 选项 描述 log_errors 设置是否将错误信息记录到日志或者 error_log 中 error_log 设置脚本错误将记录到的文件 log_errors_max_len 设置 log_errors 的最大字节数 ignore_repeated_errors 是否忽略重复的错误

PHP 错误与异常 笔记与总结(3)PHP 配置文件(php.ini)中与错误相关的选项 与 设置错误级别

[PHP 配置文件中与错误相关的选项 ] 选项 描述 error_reporting 设置错误报告的级别 display_errors 是否显示错误 log_errors 设置是否将错误信息记录到日志或者 error_log 中 error_log 设置脚本错误将记录到的文件 log_errors_max_len 设置 log_errors 的最大字节数 ignore_repeated_errors 是否忽略重复的错误信息 ignore_repeated_source 是否忽略重复错误消息的来源

bash脚本中出现[[:not found错误的解决方法

bash脚本中出现[[:not found错误的解决方法--bash脚本总结1 今天在写脚本的时候,发生了一个奇怪的问题:在脚本中使用[[的时候报错“[[: not found”.遇到问题自然是解决问题. 1. 使用的bash版本太低? bash --version查看bash版本信息如下 [email protected]:~$bash --version GNU bash, version 3.2.39(1)-release (i486-pc-linux-gnu) Copyright (C)

Hibernate数据库配置文件中数据库名称错误问题

之前碰见一个项目部署在武汉,又部署在南京.由于是配合别人做的,数据库的搭建由别人完成,我们只是负责数据库中的几个表的数据处理.以前的数据库名称是projectwh,部署南京时,开始也是使用的projectwh的名称,后来对方重新创建了一个数据库projectnj(projectwh没有删除),我们对应的将Hibernate配置文件中的url中的数据库名称修改了成projectnj,但是发现存取操作的目标仍然会是projectwh中的表格. 一般想来Hibernate配置文件中应该只有url跟数据

CentOS6 Shell脚本/bin/bash^M: bad interpreter错误解决方法

在windows下保存了一个脚本文件,用ssh上传到centos,添加权限执行nginx提示没有那个文件或目录.shell脚本放到/etc/init.d/目录下,再执行/etc/init.d/nginx,提示多了这句/bin/bash^M: bad interpreter.网上找了资料才知道如果这个脚本在Windows下编辑过,就有可能被转换成Windows下的dos文本格式了,这样的格式每一行的末尾都是以\r\n来标识,它的ASCII码分别是0x0D,0x0A.如果你将这个脚本文件直接放到Li

phpmyadmin登录后显示“使用配置文件中定义的控制用户连接失败。”错误提示

在安装完XAMPP后,设置mysql中root账户密码为123456,并修改phpmyadmin配置中root的密码为123456之后,但是phpmyadmin登录后显示"使用配置文件中定义的控制用户连接失败."错误提示. 这是因为还有一些配置信息没有更改导致的,具体设置步骤如下: 1.找到phpmyadmin文件夹下面的config.inc.php文件并打开,找到这两行代码: $cfg['Servers'][$i]['controluser'] = 'pma'; $cfg['Serv

在电脑上找到这个路径:D:\jakarta-tomcat-6\conf\Catalina,将localhost目录直接删除掉,再一运行,就没事了! 因为配置文件中配置了启动程序,而webapps文件夹下却没有此应用程序,所以出现了上述错误。

java.lang.IllegalArgumentException: Document base D:\appservers\apache-tomcat-6.0.20\webapps\megaeyes_enterprise_manager does not exist or is not a readable directory 2010-05-20 15:28:31|  分类: tomcat|举报|字号 订阅 2010-5-20 15:22:44 org.apache.catalina.co

004-用户、组、权限管理命令及bash配置文件、管道、重定向、grep

l  1.用户管理命令 1.)创建用户命令 useradd  [OPTIONS] USERNAME -u(UID):指定用户UID -g(GID):指定基本组 -G( group,...):指定附加组 -c"COMMENT":指定注释信息 -d(home_dir):指定家目录/path/to/directory -s:指定SHELL路径(/etc/shells指定了当前系统可用的安全shell) -m –k:强行为用户创建家目录 -M:不创建用户家目录 /etc/login.defs

#8 bash变量中的字符串处理

一个完整的程序,一般包括4类文件: 二进制文件(可执行文件).头和库文件.帮助文件.配置文件: bash--CLI(命令行接口)的一种 bash同样属于完整的应用程序,也有这四类文件: bash的配置文件: 三类: profile类: 为交互式登录的shell进程实现功能初始化的配置文件: bashrc类: 为非交互式登录的shell进程实现功能启动配置的配置文件: logout类: 为交互式登录的shell进程提供终止及清理类功能的配置文件: shell的类型: 交互式登录的shell: 1.