linux 脚本 alias,在shell脚本中使用alias别名
本文最后更新于2015年7月12日,已超過 1 年沒有更新,如果文章內(nèi)容失效,還請(qǐng)反饋給我,謝謝!
緣由:
經(jīng)常用Linux進(jìn)行操作的同學(xué)一般都會(huì)有各種各樣的技巧來提升工作效率,而添加/改寫shell中的alias無疑是比較常見的一種:通過設(shè)置自己慣用的alias可以快速的在Linux命令行中進(jìn)行操作,減少鍵盤敲擊、提升操作效率。不過,大部分人僅限于在命令行上使用alias,很少有人會(huì)在自己寫的shell腳本中也使用alias,一方面是因?yàn)閍lias無法通用:不同的人有不同的習(xí)慣,并且在實(shí)際的生產(chǎn)環(huán)境中情況千差萬別,alias無法保證腳本的通用性和有效性;另一方面就是——有些人真的不知道怎么在shell腳本中使用alias。而這篇文章主要就是針對(duì)不知道怎么在shell腳本中使用alias功能的人所寫的。
搜索關(guān)鍵字:
bash shell alias
bash expand_aliases
參考解答:
#在使用alias之前添加下面的內(nèi)容
shopt -s expand_aliases
查看Bash的manual你能找到下面的內(nèi)容:
Aliases are not expanded when the shell is not interactive, unless the expand_aliases shell option is set using shopt (see the description of shopt under SHELL BUILTIN COMMANDS below).
翻譯如下:
在非交互式shell中無法使用alias,除非用shopt命令顯示設(shè)定expand_aliases選項(xiàng)。
expand_aliases
If set, aliases are expanded as described below under Aliases, Aliases. This option is enabled by default for interactive shells.
因此,將“shopt -s expand_aliases”添加到你的腳本中去,然后記得source(重新加載)你的別名文件/相應(yīng)腳本:
shopt -s expand_aliases
source ~/.bash_aliases
我在前面的一篇文章(Linux中.bashrc和.bash_profile區(qū)別)中提到過:~/.bashrc 這個(gè)文件一般是由交互式非登錄shell調(diào)用的,而大部分人一般都是將alias設(shè)置在~/.bashrc中的,所以默認(rèn)情況下是無法在shell腳本中使用alias的;如果你真的需要在以后的shell編程中默認(rèn)開啟alias功能(不建議這樣做),可以通過設(shè)置BASH_ENV這個(gè)環(huán)境變量來指定非交互式shell需要調(diào)用的文件來實(shí)現(xiàn)該目的,雖然我并不建議這樣做:
#1.給 ~/.bashrc 添加一行內(nèi)容用于設(shè)置BASH_ENV環(huán)境變量
BASH_ENV='~/.non_interactive_shell'
#2.設(shè)置 ~/.non_interactive_shell 文件內(nèi)容如下
shopt -s expand_aliases
參考鏈接:
=EOF=
總結(jié)
以上是生活随笔為你收集整理的linux 脚本 alias,在shell脚本中使用alias别名的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 《强酒》是谁的作品?
- 下一篇: linux启用日志记录功能,Linux下