2014-03-04 31 views
1

第一次在這裏提問。 剛開始編程時,如果我的術語有點偏離,請保持好看。如何在OSX上創建一個bash腳本

我在OSX

工作我有,有一個功能叫pythonb執行Python文件bash腳本。

我想使這個便攜式,但我不能讓這個工作,除非我把python腳本的完整路徑在函數調用。

我認爲,因爲主bash.sh與python文件位於同一目錄中,所以我不需要聲明python腳本的目錄。 我曾嘗試在函數中使用python ./foo.py和python foo.py,但我仍然得到一個python:無法打開文件'foo.py':[Errno 2]沒有這樣的文件或目錄。我如何製作這種便攜式?謝謝大家。

#!/bin/bash 
function dothis { 
    filename=$(date +"%m-%d-%y|||%H%M%S") 
    dothis -x $filename.png 
    curl -T $filename.png -u beast:password ftp 
} 
function sayit { 
    say " I wish I knew more about all this" 
} 

function pythonb { 
    python /volumes/FUN/sexy/morefun/foo.py 
} 

dothis 
sayit 
pythonb 
exit 
+2

你有'dothis'函數中的無限遞歸。 –

+2

如果您對bash和編程還不熟悉,可以指出您可以在第一行的末尾添加「-xv」以幫助調試腳本,如下所示。#!/ bin/bash -xv –

+0

您還可以在「python」行之前添加一行,如「pwd」和/或「ls」,以查看您是否在自己認爲的位置以及您希望存在的文件。 –

回答

0

代替硬編碼的完整路徑,可以從$ 0瞭解它 - 這是當前腳本的名稱:

python "$(dirname "$0")/foo.py" 

是的,你應該使用所有這些報價

+0

謝謝。這工作。 – Loonbox

相關問題