如何从控制台执行 python 脚本而不写完整路径?

如何从控制台执行 python 脚本而不写完整路径?

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

echo $PATH 显示:

/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/opt/real/RealPlayer

所以我尝试在终端上写入:

PATH="/usr/share/scripts/:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/opt/real/RealPlayer"
export

没有显示任何错误,并且 echo $PATH 现在显示我的新脚本路径,但是当我运行脚本名称我收到“未找到命令”。

我究竟做错了什么?

答案1

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

  • 将脚本目录添加到 PATH 环境变量中,或者
  • /usr/local/bin在目录中逐个创建到脚本的符号链接(或编写另一个脚本执行相同操作) 。

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

文件内容:

#!/usr/bin/python
print "This is cool!"

-

[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 ~]$

我希望这能帮到您。

答案2

好吧,也许我只是老派...
在 /usr/bin 中添加带有 #!/bin/bash 标头且不带 .sh 扩展名的 shell 脚本。然后在这些脚本中运行 python absolutepath。

为什么我认为它比其他答案更好:
不需要对脚本进行 chmod 来使其可执行。
不需要重命名脚本。

答案3

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

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

相关内容