运行 通过在 .sh 文件中调用可执行文件

Running an executable by calling it in a .sh file

我对 bash 和使用 .sh 文件还很陌生。我正在尝试 运行 通过在 .sh 文件中调用程序 aescrypt,如下所示(aescrypt 与 .sh 文件位于同一目录中):

./aescrypt -e -p password file.txt

它抛出以下错误:

./aescrypt no such file or directory

我做错了吗?

ps- 我真的不想将它添加到 PATH 变量中,因为我将在不止一台每天重置的计算机上使用它。

如果你像 ./aescrypt.sh 这样调用程序怎么样,那就是通过终端调用 .sh 程序的方法

首先,您还必须更改文件的权限以使其可执行,方法是在终端中写入命令:

sudo chmod 765 aescrypt.sh

为此,您必须位于文件所在的位置

脚本的位置无关紧要。重要的是执行脚本的进程的工作目录。最简单的解决方案实际上是将 aescrypt 添加到标准位置,如 /bin/usr/bin。如果这些都不可接受,也许 /usr/local/bin 是一个选项。否则,只需在脚本中使用 aescrypt 的完整路径。要么对其进行硬编码,要么如果它与脚本位于同一目录中,请尝试:

$(dirname [=10=])/aescrypt ...

(请注意,硬编码更可靠,但灵活性较低。如果移动可执行文件,脚本会中断。但是如果脚本在执行期间更改目录,则使用 dirname 会中断。)