gpt4 book ai didi

linux - 使用 bash 变量进入目录

转载 作者:塔克拉玛干 更新时间:2023-11-02 23:56:58 29 4
gpt4 key购买 nike

我的 ~/.bash_aliases 文件中有以下函数

mycd() {
dir=$(cat)
echo "$dir"
cd "$dir"
}
alias c=mycd

gotoD() {
find -name $1 -type $2 | awk '{ print $0 }' | sort -k2 | head -1 | c
}
alias goto=gotoD

我希望能够打字

goto directory_name d

并让函数搜索目录并 cd 到最近的目录问题是,虽然找到的目录路径进入了 mycd,但它实际上无法更改目录,并且简单地保留在同一目录中而没有任何错误。

如有任何帮助,我们将不胜感激。

谢谢

最佳答案

无论何时将命令放入管道中,都会强制该命令作为单独的进程执行。由于每个进程都有自己的当前目录,因此您最终只会更改该进程的当前目录,而不是您输入的 shell 的当前目录。尝试像这样实现 gotoD:

gotoD() {
cd $(find -name $1 -type $2 | awk '{ print $0 }' | sort -k2 | head -1)
}

现在寻找正确目录的逻辑仍在另一个进程中执行,但是cd命令由主进程执行。

关于linux - 使用 bash 变量进入目录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16131629/

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