標籤:alias bash shell if 異常
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'