首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >无法使expand_aliases生效

无法使expand_aliases生效
EN

Stack Overflow用户
提问于 2010-03-23 23:17:29
回答 2查看 5.5K关注 0票数 13

我不能让expand_aliases在bash中生效。我尝试了很多不同的方法,但都不起作用。

下面是一个简单的测试用例:

代码语言:javascript
复制
/bin/bash -c 'shopt -s expand_aliases; alias cdtmp="cd /tmp"; alias; cdtmp; pwd;'

和输出:

代码语言:javascript
复制
$ /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,只是为了证明它已经完成了。)

有什么想法吗?

EN

回答 2

Stack Overflow用户

发布于 2020-04-21 07:08:35

我迟到了10年。您可以使用eval使别名cdtmp再次展开。

代码语言:javascript
复制
/bin/bash -c 'shopt -s expand_aliases; alias cdtmp="cd /tmp"; alias; eval cdtmp; pwd;'

将为您提供输出

代码语言:javascript
复制
alias cdtmp='cd /tmp'
/tmp
票数 2
EN

Stack Overflow用户

发布于 2020-12-23 16:58:51

试试/bin/bash -O expand_aliases -c 'xx'

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2501056

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档