Linux shell 腳本中使用 alias 定義的別名

核心知識點: 用 shopt 開啓和關閉 alias 擴展

交互模式下alias 擴展默認是開啓的,腳本模式下默認是關閉的 **** alias 擴展的名稱是 expand_aliasesnode

alias 定義

在當前session中,能夠直接在命令行執行 alias alias-name-define="xxxx"shell

好比:vim

root@pts/9 $ alias aliasTest="echo Hello world"

root@pts/9 $ aliasTest  
Hello world

若是想要永久保存定義的alias,能夠將其寫入到 /etc/profile 或者 ~/.bash_rc 中去,兩個的區別是影響的範圍不同而已bash

root@pts/9 $ vim ~/.bash_rc 

root@pts/9 $ tail -1 ~/.bash_rc 
alias aliasTest="echo Hello world"

打開新的session 在命令行先執行source ~/.bash_rc 再執行 aliasTest 輸出一樣的結果session

在腳本中使用 alias

先看執行的結果.net

[root@node1 ~]# ./test.sh 
若是alias是在~/.bash_rc等文件中定義,須要先執行 source ~/.bash_rc
檢查默認狀況下shell腳本中是否開啓alias擴展
expand_aliases 	off
默認狀況下執行定義的alias
./test.sh: line 8: aliasTest: command not found
shell中開啓alias擴展
shell中開啓alias擴展以後檢查
expand_aliases 	on
shell中開啓alias擴展以後,使用alias別名
Hello world
[root@node1 ~]#

再研究具體的腳本命令行

# cat test.sh 
echo  "若是alias是在~/.bash_rc等文件中定義,須要先執行 source ~/.bash_rc"
source /root/.bash_rc

echo "檢查默認狀況下shell腳本中是否開啓alias擴展"
shopt expand_aliases   

echo "默認狀況下執行定義的alias"
aliasTest

echo "shell中開啓alias擴展"
shopt -s  expand_aliases  

echo "shell中開啓alias擴展以後檢查"
shopt expand_aliases   

echo "shell中開啓alias擴展以後,使用alias別名"
aliasTest

附加 (執行 help shopt 能夠查看該shell內置命令的幫助信息)

Command Desc
shopt -s opt_name Enable (set) opt_name
shopt -u opt_name Disable (unset) opt_name
shopt opt_name Show current status of opt_name

參考資料

相關文章
相關標籤/搜索