我正在编写一个将放置在某个位置的python脚本。我想像命令一样执行它。对于前
$ find_branch test
其中find_branch是放置在系统中任何位置的脚本。
我想知道如何实现这一目标。我可以通过脚本上的chmod u + x在脚本所在的位置运行它,并从脚本中删除.py
答案 0 :(得分:0)
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
答案 1 :(得分:0)
您可以选择多种方法来实现这一目标。
添加将脚本放置到PATH
环境变量的位置,例如在~/.bashrc
脚本中:
export PATH="${PATH}:/folder/where/you/put/the/script"
将脚本安装到路径中已有的位置。它不必是/usr/bin
之类的系统文件夹。许多默认的Bash设置都会在~/bin
中包含PATH
。
在命令行中提供脚本的完整路径:
/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'
OR
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
扩展名,但不会阻止它们按原样运行。您只需在运行时在脚本名称中包含扩展名。
答案 2 :(得分:0)
确保已将python添加到路径中,并且#!/usr/bin/python
位于脚本的顶部。
注意您可以尝试将脚本添加到/usr/local/bin/
目录并为其提供适当的权限。
sudo cp <your script> /usr/local/bin/