假设我有一个只包含以下内容的script/tmp/printy.py:
#! /usr/bin/python2.7
print "hello world"
为什么这样做:
chmod +x /tmp/printy.py
export PATH=$PATH:/tmp/
printy.py
但这并不是:
chmod +x /tmp/printy.py
export PATH=$PATH:/tmp/
python printy.py
还有什么可以添加到cron作业中,比如说,cron作业应该使用特定的解释器运行printy.py,以使其工作?
很可能是重复的,但我找不到任何东西,也许我用错了搜索词?
最佳答案
shell中的路径查找仅适用于命令,而不是任意文件。在第一个示例中,printy.py
是命令名。在第二种情况下,它只是Python的一个参数,Python不使用PATH
来查找要运行的脚本;它希望printy.py
位于当前工作目录中。
您可以使用PYTHONPATH
和-m
的组合来模拟:
PYTHONPATH=$PATH python -m printy
关于linux - 为什么在bash中使用显式解释器不使用路径变量,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/47656052/