linux 脚本 alias,在shell脚本中使用alias别名
本文最后更新于2015年7月12日,已超過 1 年沒有更新,如果文章內容失效,還請反饋給我,謝謝!
緣由:
經常用Linux進行操作的同學一般都會有各種各樣的技巧來提升工作效率,而添加/改寫shell中的alias無疑是比較常見的一種:通過設置自己慣用的alias可以快速的在Linux命令行中進行操作,減少鍵盤敲擊、提升操作效率。不過,大部分人僅限于在命令行上使用alias,很少有人會在自己寫的shell腳本中也使用alias,一方面是因為alias無法通用:不同的人有不同的習慣,并且在實際的生產環境中情況千差萬別,alias無法保證腳本的通用性和有效性;另一方面就是——有些人真的不知道怎么在shell腳本中使用alias。而這篇文章主要就是針對不知道怎么在shell腳本中使用alias功能的人所寫的。
搜索關鍵字:
bash shell alias
bash expand_aliases
參考解答:
#在使用alias之前添加下面的內容
shopt -s expand_aliases
查看Bash的manual你能找到下面的內容:
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命令顯示設定expand_aliases選項。
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(重新加載)你的別名文件/相應腳本:
shopt -s expand_aliases
source ~/.bash_aliases
我在前面的一篇文章(Linux中.bashrc和.bash_profile區別)中提到過:~/.bashrc 這個文件一般是由交互式非登錄shell調用的,而大部分人一般都是將alias設置在~/.bashrc中的,所以默認情況下是無法在shell腳本中使用alias的;如果你真的需要在以后的shell編程中默認開啟alias功能(不建議這樣做),可以通過設置BASH_ENV這個環境變量來指定非交互式shell需要調用的文件來實現該目的,雖然我并不建議這樣做:
#1.給 ~/.bashrc 添加一行內容用于設置BASH_ENV環境變量
BASH_ENV='~/.non_interactive_shell'
#2.設置 ~/.non_interactive_shell 文件內容如下
shopt -s expand_aliases
參考鏈接:
=EOF=
總結
以上是生活随笔為你收集整理的linux 脚本 alias,在shell脚本中使用alias别名的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 《强酒》是谁的作品?
- 下一篇: 求一个茶的个性签名。