如何在OSX上使bash脚本可移植

时间:2014-03-04 19:42:50

标签: macos bash

第一次在这里问一个问题。 编程的新手,如果我的术语有点偏离,请不要好。

我在OSX工作

我有一个bash脚本,其中有一个名为pythonb的函数,用于执行python文件。

我试图让它变得可移植,但除非我在函数调用中放入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

1 个答案:

答案 0 :(得分:0)

不是硬编码完整路径,而是从$ 0学习它 - 这是当前脚本的名称:

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

是的,你应该使用所有这些引用