[英]Execute a python script as a command
我正在编写将放置在某个位置的python脚本。 我想像执行命令一样执行它。 对于前。
$ find_branch test
其中find_branch是放置在系统中任何位置的脚本。
我想知道如何实现这一目标。 我可以在脚本上使用chmod u + x在存在脚本的地方运行它,并从脚本中删除.py
sudo nano /usr/bin/testpyscript
然后在脚本中:
#!/usr/bin/python
print("I'm a python script")
给它x
权限:
sudo chmod +x /usr/bin/testpyscript
现在,您可以将其用作常规命令:
bash-4.2$ testpyscript
I'm a python script
它不必精确位于/usr/bin
,$ PATH内的任何位置都可以。 假设您希望它位于主目录内的某个文件夹中,则可以执行以下操作:
pwd
/home/brunorb
mkdir somedir
sudo mv /usr/bin/testpyscript somedir/
export PATH=$PATH:/home/brunorb/somedir/
testpyscript # from any folder in the system
I'm a python script
关于如何实现这一点,您有很多选择。
将放置脚本的位置添加到PATH
环境变量中,例如,在~/.bashrc
脚本中:
export PATH="${PATH}:/folder/where/you/put/the/script"
将脚本安装到路径上已经存在的位置。 它不必是/usr/bin
类的系统文件夹。 许多默认的Bash设置都会在PATH
包含~/bin
。
在命令行上提供脚本的完整路径:
/folder/where/you/put/the/script/find_branch test
通过Python运行脚本。 这与选项2非常相似:
python /folder/where/you/put/the/script/find_branch test
在您的环境中为脚本创建别名。 在bash中,您将在~/.bashrc
执行以下操作:
alias find_branch='/folder/where/you/put/the/script/find_branch'
要么
alias find_branch='python /folder/where/you/put/the/script/find_branch'
为了使选项#1,#2,#3和#5a正常工作,您应该使用带Python版本的shebang作为脚本的第一行。 根据您的环境设置方式,以下任何操作均可:
#!/usr/bin/python
#!/usr/bin/python2
#!/usr/bin/python3
#!/usr/bin/env python
#!/usr/bin/env python2
#!/usr/bin/env python3
最后,如果您不想这样做,则不必从脚本中删除.py
扩展名。 例如,许多bash脚本都具有.sh
扩展名,但这不会阻止它们按原样运行。 您只需在运行脚本时在脚本名称中包含扩展名即可。
确保已将python添加到您的路径中,并且#!/usr/bin/python
位于脚本的顶部。
注意您可以尝试将脚本添加到/usr/local/bin/
目录中并为其赋予适当的权限。
sudo cp <your script> /usr/local/bin/
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.