我不能让expand_aliases在bash中生效。我尝试了很多不同的方法,但都不起作用。
下面是一个简单的测试用例:
/bin/bash -c 'shopt -s expand_aliases; alias cdtmp="cd /tmp"; alias; cdtmp; pwd;'和输出:
$ /bin/bash -c 'shopt -s expand_aliases; alias cdtmp="cd /tmp"; alias; cdtmp; pwd;'
alias cdtmp='cd /tmp'
/bin/bash: cdtmp: command not found
/home/user
$ /bin/bash --version
GNU bash, version 3.2.25(1)-release (i686-redhat-linux-gnu)
Copyright (C) 2005 Free Software Foundation, Inc.(是的,我正在使用shopt而不是-O选项来bash,只是为了证明它已经完成了。)
有什么想法吗?
发布于 2020-04-21 07:08:35
我迟到了10年。您可以使用eval使别名cdtmp再次展开。
/bin/bash -c 'shopt -s expand_aliases; alias cdtmp="cd /tmp"; alias; eval cdtmp; pwd;'将为您提供输出
alias cdtmp='cd /tmp'
/tmp发布于 2020-12-23 16:58:51
试试/bin/bash -O expand_aliases -c 'xx'
https://stackoverflow.com/questions/2501056
复制相似问题