如何使用shell脚本调用bin文件



我想从shell脚本中调用一个可执行文件。所以我在一个名为start.sh的文件中写了一些代码。代码为:

#!/bin/sh
source env34/bin/activate

(我想使用文件"activate")。之后我执行

./start.sh

在命令行上,但它不起作用。

您需要删除sourcesource告诉解释器(您的shell)应该将文件直接作为shell脚本加载。您不是在运行shell脚本,而是在运行可执行文件("bin"),所以您只需直接调用它,而不需要source

额外提示:如果你的脚本最后一件事就是调用另一个二进制文件,那么你可以使用exec将你正在运行的脚本替换为二进制文件,这样脚本就不再运行了。有些人喜欢这样,因为它避免了再启动一个过程,并使topps的输出更精简:

#!/bin/sh
exec env34/bin/activate

请注意,exec行之后的脚本中不会运行任何内容,因此这仅适用于某些情况。但是"启动器"脚本就是一个很好的例子。

最新更新