shell脚本中使用alias失效?

系统+安全 Liemer_Lius 2897℃ 0评论

在shell脚本中,如果直接用自定义的alias,会提示不是系统内部的命令,这是因为默认的脚本中alias模块并不生效,这时候需要手动打开alias模块:

#!/bin/bash
su - lius <<!
shopt -s expand_aliases
source ~/.bashrc
cdp
pwd
!

其中,shopt -s expand_aliases就是开启alias的机制;

然后,我们需要将定义alias的文件重新source一遍,这个文件通常是~/.bashrc, /etc/profile等,根据情况而定。或者重新定义一个alias。

#!/bin/bash
su - lius <<!
shopt -s expand_aliases
alias hello='echo \"My name is Lius...\"'
hello
!

# bash b.sh
"My name is Lius..."

 

转载请注明:liutianfeng.com » shell脚本中使用alias失效?

喜欢 (1)

发表回复