Linux shell 指令碼中使用 alias 定義的別名
阿新 • • 發佈:2019-07-07
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