[英]Passing alias as function argument linux bash
大家好我正在学习如何在linux中使用.bashrc文件,因为我的标题声明我想知道如何使函数将参数识别为别名
我有一个名为home的别名,定义为: alias home=$HOME
并且函数定义为
function go(){
cd $1
ls $1
}
但是当我go home
我得到了
bash: cd: home: No such file or directory ls: cannot access home: No such file or directory
当我想要它去做$ HOME
我将如何实现这一目标?
别名不是单词替换,而是新创建的小命令:
$ alias bla=ls
$ bla
file1
file2
file3
…
因此,它不能以您假设的方式使用。
您可能希望对此使用变量替换:
$ home=$HOME
$ function go() {
cd "$(eval echo \$"$1")"
}
$ go home
如果您想使用别名,尽管这是滥用行为,请尝试以下方法:
$ alias home=$HOME
$ function go() {
cd "$(type "$1" | sed -e 's/.*is aliased to .//' -e 's/.$//')"
}
$ go home
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.