我应该将命令的其他文件放在哪里?

我应该将命令的其他文件放在哪里?

我用 Python 制作了一个脚本,使其可执行,并将其放入/usr/local/bin/.但是我还有许多与我的命令相关的其他文件,我应该将它们放在哪里?我尝试将它们放入/usr/local/但不起作用。

from: can't read /var/mail/lib.arguments
from: can't read /var/mail/lib.shot
from: can't read /var/mail/gui.main
/usr/local/bin/shot: 6: Syntax error: "(" unexpected

这个错误似乎很奇怪,我没有将任何文件放入/var/mail/.

我还尝试将整个项目移动到/usr/local/并创建文件的符号链接main,然后将符号链接移动到/usr/local/bin/目录。

ln -s main /usr/local/bin

顺便说一句,我正在使用 Ubuntu。

更新:

我把从shebang改为。我移动到我的项目目录,复制了我的文件,将其重命名为.最后我再次在 处创建了一个符号链接。#!/bin/sh#!/usr/bin/python3main.pymain/usr/local/bin


我的问题是该文件的名称为灰色背景红色,并且我无法调用该命令。

答案1

查看man ln

ln -s main /usr/local/bin/yourscript

不要为链接提供目录名称/usr/local/bin。将其命名为您选择的目录中的文件。也许要注意您正在将脚本放入二进制目录中。那不是很干净。

编辑:Python 对于放入目录中的内容可能有点奇怪bin。大多数东西并不是真正的二进制文件,也不是二进制文件的链接。通常它只是一个自我导入的小 Python 脚本。只需检查其中一些即可。例如pydoc将以下内容放入/usr/bin/pydoc

1   #!/usr/bin/python3.8
  1
  2 import pydoc
  3 if __name__ == '__main__':
  4     pydoc.cli()

bin如果您只想运行 Python 脚本,则无需将其放入目录中。

  • 如果你想从另一个程序调用它,你可以将 扩展PATH到它所在的目录,例如。和PATH=$PATH:/MY/PATH。请注意,某些程序使用自己的路径变量。请务必查看一下environmental variables.对于Python,看看这里,你会发现Python正在使用PYTHONPATH.
  • bash可以只定义一个alias=myscript.

相关内容