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

本文深入探讨了Bash shell中的alias扩展特性,包括如何在交互模式和脚本模式下开启和关闭alias扩展,以及如何定义和使用别名。文章还介绍了如何将alias定义永久保存在配置文件中,并在脚本中正确使用alias。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

核心知识点: 用 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内置命令的帮助信息)

CommandDesc
shopt -s opt_nameEnable (set) opt_name
shopt -u opt_nameDisable (unset) opt_name
shopt opt_nameShow current status of opt_name

参考资料

转载于:https://my.oschina.net/u/553266/blog/3070584

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值