有没有关于如何编写一个可从终端执行的应用程序(如 git)的例子?

有没有关于如何编写一个可从终端执行的应用程序(如 git)的例子?

我想编写一个 Ubuntu 应用程序来帮助我处理基于 Web 的 API。我可以用 Python 编写它,但我想知道如何构建它,以便我可以将其作为终端上的命令执行。

答案1

把你的 Python 程序放在一个文本文件中。该文件的第一行应该是

 #!/usr/bin/python

 print "Hello world"

(我把“Hello world”这行代码作为 Python 代码的一个例子)。将其保存为文本文件,例如test.py。使该文件可执行

 chmod a+x test.py

现在你就可以运行它了:

 ./test.py

为了能够从任何目录和每个用户访问它,请将其放入/usr/local/bin,这是未使用包管理器安装的可执行文件的默认位置:

sudo cp test.py /usr/local/bin

或者,您可以在主目录中创建一个名为“bin”的目录;它将通过 $HOME/.profile 文件自动附加到您的 PATH 变量中。

mkdir $HOME/bin
mv test.py $HOME/bin

在最后这两种情况下,要在终端中运行脚本,您只需写入:

test.py

此处的扩展名“.py”仅用于表明它是 Python 脚本。您可以将其命名为“susan”,然后键入以下内容来运行它

susan

其作用是一样的。

答案2

Python 是一种脚本语言,这意味着您无需在运行之前对其进行编译。您只需要安装所需版本的 Python 解释器。

例如,你的主目录中有一个名为 foo.py 的 Python 脚本,你可以使用命令运行该脚本

$ ~/foo.py

文件中的第一行应该表明这是一个 Python 文件。第一行应该是这样的:

#!/usr/bin/env python

假设它被设置为可执行文件,如果没有:

$ chmod +x ~/foo.py

如果您想要运行它而不包含任何~/内容,那么您应该将其移动到您的 $PATH。

$ echo $PATH
/usr/local/bin:/usr/bin:/bin

如果您将 foo.py 移入/usr/local/bin/usr/bin或者/bin您可以在没有任何父文件夹的情况下运行。

$ sudo mv ~/foo.py /usr/local/bin
$ foo.py

答案3

将它放入一个小的 Python 脚本中以便/usr/local/bin能够从命令行运行它(参见这个答案)我们可能有一个更复杂的python应用程序,需要将其存储在另一个地方(例如/opt/myapp/)。

然后我们可以编写一个小脚本,引用/usr/local/bin/我们的python脚本,例如

#! /bin/bash

python /opt/myapp/myapp.py "$@"

"$@"如果您的脚本采用命令行参数,请添加变量。

相关内容