CD通过.bashrc函数执行的脚本进入目录

时间:2017-09-26 01:12:39

标签: bash

我正在尝试编写一个让我进入目录的程序。我的程序叫做mangy,我也有一个mangy.sh脚本和一个在.bashrc中定义的mangy函数

mangy.sh如下

out= $($HOME/.mangy/mangy $@)
if [ "$1" == "g" ] || [ "$1" == "go" ] ; then 
    cd "$out"
else
    echo "$out"
fi

这是我在.bashrc中的功能

function mangy() {
   source $HOME/.mangy/mangy.sh $@
}
export -f mangy

~/Desktopout包含

的示例

当我运行mangy函数时,它会输出/home/ryan/Desktop: Is a directory ,但不会在那里导航我。我发誓我曾经有过这个工作,但不记得我是怎么做的

1 个答案:

答案 0 :(得分:0)

您正在尝试获取参数。采购脚本与执行脚本不同。采购只包括文件,所以这应该做:

function mangy() {
   source $HOME/.mangy/mangy.sh
}

此外,如果您不希望将其分隔为空格,则应引用$@

out=$($HOME/.mangy/mangy "$@")

此外,最好不要mangy.sh,尽管这确实是你的决定。您可以将其直接放在.bashrc

function mangy() {
    out= $($HOME/.mangy/mangy $@)
    if [ "$1" == "g" ] || [ "$1" == "go" ] ; then 
        cd "$out"
    else
        echo "$out"
    fi
}