如何在不写完整路径的情况下从控制台执行python脚本?

gre*_*das 8 linux terminal bash console bashrc

我在 /usr/share/scripts/ 上有一些我经常使用的 python 脚本,我希望能够通过只写名称而不是完整路径来执行它们,我该怎么做?

echo $PATH 显示我:

/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/opt/real/RealPlayer
Run Code Online (Sandbox Code Playgroud)

所以我尝试在终端上写:

PATH="/usr/share/scripts/:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/opt/real/RealPlayer"
export
Run Code Online (Sandbox Code Playgroud)

没有显示错误并且 echo $PATH 现在显示我的新脚本路径,但是当我运行scriptName时,我找不到命令。

我究竟做错了什么?

小智 9

通过“chmod +x *”设置python脚本的可执行权限
现在您有两个选择:

  • 将您的脚本目录添加到 PATH 环境变量,或
  • /usr/local/bin目录中一个一个地建立到你的脚本的符号链接(或编写另一个脚本来做同样的事情)。

例子:
[mzed@node02 test]$ vim printme.py

文件内容:

#!/usr/bin/python
print "This is cool!"
Run Code Online (Sandbox Code Playgroud)

——

[mzed@node02 test]$ mv printme.py printme
[mzed@node02 test]$ chmod +x printme
[mzed@node02 ~]$ cd /usr/local/bin/
[mzed@node02 bin]$ sudo ln -s ~/test/printme .
[mzed@node02 bin]$ ls
deskzilla  grails  grails-debug  printme  startGrails
[mzed@node02 bin]$ cd
[mzed@node02 ~]$ printme 
This is cool!
[mzed@node02 ~]$
Run Code Online (Sandbox Code Playgroud)

我希望这能帮到您。


小智 0

抱歉,建议了一个基本的事情。您是否尝试过“scriptname.py”,而不仅仅是“scriptname”?

另外,所有脚本都需要具有执行权限(您可以通过发出“chmod +x script.py”来做到这一点)。从上面的评论来看,因为您已经像“/usr/share/scripts/scriptName.txt”一样运行它们。 py args”,他们应该有执行权限。