2017-08-24 68 views
1

我想做的事:如何在bash中運行python腳本,並將輸出用於cd?

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

然後運行

?> go home

go.py打印一些目錄(/我的/特殊的/ home),用於通過CD去那個位置。但是,它不起作用。如果我改變別名:

alias go=cd $(go.py home)

它工作正常,但我希望它是更配置了一下。與我不明白我假設的語法有關。

+0

我想你的第一筆交易是要逐字吐出,如果你輸入「回家」,'$ CD(go.py $ 1)home' – zzxyz

回答

3

使用,而不是一個別名功能:

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

我嘗試過類似的東西,但沒有使用花括號來說明爭論。如果你知道,bash是如何解析這些的? – Rollie

+0

其實這裏沒關係。你也可以使用'「$ 1」'。當你使用像'$ {FOO_BAR}'這樣的變量名時,花括號是很好的。如果使用'$ FOO_BAR',則不清楚該變量是否被稱爲「FOO_BAR」,或者如果展開變量'FOO'並追加字符串'_BAR'。這就是爲什麼使用大括號是一個好習慣。 – hek2mgl