使用shell脚本中的选项调用python函数

使用shell脚本中的选项调用python函数,python,linux,bash,shell,Python,Linux,Bash,Shell,我有一个python脚本,它从命令行获取各种选项 e、 g -使用gui运行 python myscript.py -gui -运行时不需要用户提示 python myscript.py -aut -使用从input.py获取的输入数据运行 python myscript.py input.py python myscript.py -aut input.py -以及上述各项的组合,例如从input.py自动获取输入 python myscript.py input.py python

我有一个python脚本,它从命令行获取各种选项

e、 g

-使用gui运行

python myscript.py -gui
-运行时不需要用户提示

python myscript.py -aut
-使用从input.py获取的输入数据运行

python myscript.py input.py
python myscript.py -aut input.py
-以及上述各项的组合,例如从input.py自动获取输入

python myscript.py input.py
python myscript.py -aut input.py
我希望能够在我的linux机器上的任何地方调用它。我该怎么做?我已尝试在.bashrc文件中使用别名,但使用此方法无法接受任何输入选项。我也试过了

export PATH=$PATH:/PATH/to/folder/over\u myscript/

但这只会在我键入myscript而不是python myscript时识别命令。仅键入myscript显然无法运行python脚本

我还尝试编写一个shell脚本,可以调用它

#!/bin/bash
#file: myscript.sh

python '/path/to/folder/above_myscript/myscript.py'
然而,我同样无法向它传递任何选项。这个问题的最佳解决方案是什么?

试试这个:

python /path/to/folder/above_myscript/myscript.py
或者这个:

cd /path/to/folder/above_myscript && python myscript.py
在shell脚本上。

尝试以下操作:

python /path/to/folder/above_myscript/myscript.py
或者这个:

cd /path/to/folder/above_myscript && python myscript.py

在shell脚本上。

如果添加
#/usr/bin/env python
myscript.py文件的顶部,并在上面运行
chmod+x myscript.py
,您应该能够运行
myscript.py
,而无需将
python
放在前面。这应该允许您使用以前的
路径
更改方法。

如果您添加
#/usr/bin/env python
myscript.py文件的顶部,并在上面运行
chmod+x myscript.py
,您应该能够运行
myscript.py
,而无需将
python
放在前面。这应该可以让您使用以前的
路径
更改方法。

这几乎适用于我。但是,在myscript.py中,我有一个子进程命令,它调用
myscript\u gui.py
,然后调用一些图像文件
myscript.py
无法找到
myscript\u gui.py
除非我明确包含此文件的路径,并且
myscript\u gui.py
也无法找到图像文件。python有没有办法使用我的linux路径上已有的内容来运行gui?@218这个答案向您展示了如何获取正在调用的脚本的目录。如果myscript_gui.py脚本在同一个目录中,我假设是这样的?然后你可以在调用它的地方预先设置目录路径,它应该可以工作:)恐怕我不知道怎么做-这个链接是为了bash脚本的,python不能读取它,所以
DIR=$(cd“$(dirname”${bash_SOURCE[0]}”)&&pwd)
只返回
语法错误:无效语法
@218抱歉,我一定是太累了,在python中,您可以使用
os.path.dirname(os.path.realpath(_文件__))获取脚本所在的目录。然后,您可以将它附加到
myscript_gui.py
脚本的开头,以获取它的位置:)这几乎对我有用。但是,在myscript.py中,我有一个子进程命令,它调用
myscript\u gui.py
,然后调用一些图像文件
myscript.py
无法找到
myscript\u gui.py
除非我明确包含此文件的路径,并且
myscript\u gui.py
也无法找到图像文件。python有没有办法使用我的linux路径上已有的内容来运行gui?@218这个答案向您展示了如何获取正在调用的脚本的目录。如果myscript_gui.py脚本在同一个目录中,我假设是这样的?然后你可以在调用它的地方预先设置目录路径,它应该可以工作:)恐怕我不知道怎么做-这个链接是为了bash脚本的,python不能读取它,所以
DIR=$(cd“$(dirname”${bash_SOURCE[0]}”)&&pwd)
只返回
语法错误:无效语法
@218抱歉,我一定是太累了,在python中,您可以使用
os.path.dirname(os.path.realpath(_文件__))获取脚本所在的目录。然后,您可以将它附加到
myscript_gui.py
脚本的开头,以获取它的位置:)