2017-09-26 31 views
0

我正在嘗試編寫一個程序,該程序會讓我進入一個目錄。我的計劃被稱爲癩皮狗,我也有一個mangy.sh腳本,並在.bashrc中定義的癩皮狗功能通過.bashrc函數執行的腳本將光盤放入目錄

mangy.sh如下

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

,這裏是我的.bashrc中

功能
function mangy() { 
    source $HOME/.mangy/mangy.sh [email protected] 
} 
export -f mangy 

~/Desktop是什麼out一個例子將包含

當我運行mangy功能它輸出/home/ryan/Desktop: Is a directory 但我不在那裏導航。我發誓我曾在某一點工作,但不記得我是如何做到的

+1

你真的在out ='後面有空格嗎?如果是這樣,那部分將不會工作至少 –

+0

就是這樣,謝謝! – rykeeboy

+0

如果需要功能才能正常工作,爲什麼要將代碼放在文件中?只需將所有代碼內聯到函數中即可。 – tripleee

回答

0

您正在嘗試輸入參數。採購腳本與執行腳本不同。採購只是包括文件,所以這應該這樣做:

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

此外,您應該引用[email protected],如果你不希望它通過空間被分割做。

out=$($HOME/.mangy/mangy "[email protected]") 

此外,它可能更簡單,根本沒有mangy.sh,儘管這確實是您的決定。你可以直接把它放在.bashrc

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