Linux shell脚本中使用alias定义的别名

2019-01-14  本文已影响98人  菩提老鹰

核心知识点 shopt 开启和关闭 alias 扩展
交付模式默认是开启的,脚本的默认是关闭的
alais 扩展的名称是 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 或者 ~/.bashrc 中去,两个的区别是影响的范围不一样而已

root@pts/9 $ vim ~/.bashrc 

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

打开新的session 在命令行执行aliasTest 输出同样的结果

shell中使用alias

先看执行的结果

root@pts/9 $ bash test.sh 
如果alias是在~/.bashrc等文件中定义,需要先执行 source ~/.bashrc
检查是否默认情况下shell脚本中是否开启alias扩展
expand_aliases  off
默认情况下执行定义的alias
test.sh: line 10: aliasTest: command not found
shell中开启alias扩展
shell中开启alias扩展之后检查
expand_aliases  on
shell中开启alias扩展之后,使用alias别名
Hello world

在研究具体的脚本

#!/bin/bash 

echo  "如果alias是在~/.bashrc等文件中定义,需要先执行 source ~/.bashrc"
source /root/.bashrc

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

附加

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
上一篇下一篇

猜你喜欢

热点阅读