我无法让expand_aliases在bash中生效.我尝试了很多不同的东西,没有任何作用.
这是简单的测试用例:
/bin/bash -c 'shopt -s expand_aliases; alias cdtmp="cd /tmp"; alias; cdtmp; pwd;'
Run Code Online (Sandbox Code Playgroud)
并输出:
$ /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.
Run Code Online (Sandbox Code Playgroud)
(是的,我正在使用shopt而不是-O选项进行bash,只是为了证明它正在完成.)
有任何想法吗?
我希望能够在ruby程序中调用我的一个快捷方式(即别名).换句话说,我想要
system('cpl')
Run Code Online (Sandbox Code Playgroud)
相当于写作
cd ~/Documents/CPlusPlus
Run Code Online (Sandbox Code Playgroud)
在命令行,因为我.bash_profile包括该行
alias cpl="cd ~/Documents/cplusplus"
Run Code Online (Sandbox Code Playgroud)
我在Mac OSX上,当我.bash_profile住在通常的地方(~)时,我可能会在任何旧文件夹中写入ruby.我正在使用位于的Ruby 2.2.0 /usr/local/bin/ruby.