2010-08-16 32 views
1

考虑这个设置和文件夹结构:由命令行上的MAC/Linux的调用python脚本 - 传递参数

c:\foo 
     \bin\foo.bat 
     \lib\foo.py 

我已经foo.bat路径添加到我的环境路径,这样我就可以从任何地方通过调用它在一些参数:

c:/>foo.bat -v 

foo.bat包含此代码:

@ECHO OFF 
"c:\foo\lib\foo.py" %1 %2 %3 %4 %5 %6 %7 %8 %9 

这工作正常Windows操作系统。

现在我想能够在Mac或Linux中做同样的事情。

如何创建这个可执行文件,它将调用脚本lib \ foo.py,传递一些参数?

感谢

[解决方法]

感谢球员,你的回答让我结束了这个脚本,它按预期工作:

在\富\ BIN \富

文件

#!/usr/bin/env bash 
python /usr/local/foo/lib/foo.py $* 

回答

2

你没有明确地说出你选择的壳是什么S,但假设它是GNU的bash:

#!/usr/bin/env bash 
/path/to/lib/foo.py $*

注意,您的shell脚本和foo.py需要有执行位设置来运行这种方式(即只有

chmod +x /path/to/your/script /path/to/lib/foo.py
距离)。

+0

谢谢Emanuele。这真的有帮助,因为我不知道如何通过这些论点。 – Bach 2010-08-16 11:48:55

6

你可以叫Python脚本直接在Mac/Linux上,只要确保把你的Python解释器在第一行,例如文件foo:

#!/usr/bin/python 
if __name__ == "__main__": 
    print 'bar' 

运行该文件调用它直接形成你的当前目录使用./foo

,如果你想访问是否来自世界各地的你可以把它放在/usr/local/bin,例如,只要确保该文件是可执行文件(chmod +x foo)。

+0

谢谢deif。唯一的问题是我不希望用户直接调用脚本,因为我将所有可执行文件保存在bin文件夹中,而脚本位于lib文件夹中,该文件夹对该文件夹中的其他库/脚本有相对引用。 – Bach 2010-08-16 11:47:45

相关问题