我正在尝试编写一个让我进入目录的程序。我的程序叫做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
~/Desktop
是out
包含
当我运行mangy
函数时,它会输出/home/ryan/Desktop: Is a directory
,但不会在那里导航我。我发誓我曾经有过这个工作,但不记得我是怎么做的
答案 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
}