如何在bash中运行python脚本,并使用cd的输出?

如何在bash中运行python脚本,并使用cd的输出?,bash,unix,Bash,Unix,我想做: alias go=cd$(go.py$1) 然后跑 ?>回家 go.py打印一些目录(/my/special/home),cd使用该目录转到该位置。但是,它不起作用。如果我将别名更改为: alias go=cd$(go.py home) 它工作得很好,但我希望它更具可配置性。我猜有些语法我不懂。使用函数而不是别名: function go() { cd "$(go.py "${1}")" } 我想你的第一笔交易会从字面上说出来,如果你输入“回家”,cd$(go.py$1)ho

我想做:

alias go=cd$(go.py$1)

然后跑

?>回家

go.py
打印一些目录(/my/special/home),cd使用该目录转到该位置。但是,它不起作用。如果我将别名更改为:

alias go=cd$(go.py home)


它工作得很好,但我希望它更具可配置性。我猜有些语法我不懂。

使用函数而不是别名:

function go() {
    cd "$(go.py "${1}")"
}

我想你的第一笔交易会从字面上说出来,如果你输入“回家”,cd$(go.py$1)home我试过类似的东西,但没有使用大括号作为论点。如果你知道的话,bash是如何解析这些的呢?实际上,这并不重要。您也可以使用
“$1”
。当您使用变量名(如
${FOO\u BAR}
时,大括号很有用。如果要使用
$FOO\u BAR
则不清楚该变量是否被称为
FOO\u BAR
,或者是否展开变量
FOO
并附加字符串
\u BAR
。这就是为什么使用花括号是一个好习惯。