gpt4 book ai didi

linux - 传递别名作为函数参数linux bash

转载 作者:太空狗 更新时间:2023-10-29 11:27:30 26 4
gpt4 key购买 nike

大家好,我正在学习如何在 Linux 中使用 .bashrc 文件,正如我的标题所述,我想知道如何让函数将参数识别为别名

我有一个名为 home 的别名定义为:alias home=$HOME

一个函数定义为

function go(){
cd $1
ls $1
}

但是当我回家我明白了

bash: cd: home: 没有那个文件或目录
ls: 无法访问 home: 没有那个文件或目录

当我想要它的时候去$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

关于linux - 传递别名作为函数参数linux bash,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16764682/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com