我在 /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”一样运行它们,因此它们应该具有执行权限。