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


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

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

alias 定義

在當前session中,可以直接在命令行執行 alias alias-name-define="xxxx"

比如:

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

root@pts/9 $ aliasTest  
Hello world

如果想要永久保存定義的alias,可以將其寫入到 /etc/profile 或者 ~/.bash_rc 中去,兩個的區別是影響的范圍不一樣而已

root@pts/9 $ vim ~/.bash_rc 

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

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

在腳本中使用 alias

先看執行的結果

[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

參考資料


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM