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

时间:2015-03-15 13:29:52

标签: bash sh

我是bash和使用.sh文件的新手。我试图通过在.sh文件中调用它来运行程序aescrypt,如下所示(aescrypt与.sh文件位于同一目录中):

./aescrypt -e -p password file.txt

它会抛出以下错误:

./aescrypt no such file or directory

我做错了吗?

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

2 个答案:

答案 0 :(得分:2)

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

$(dirname $0)/aescrypt ...

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

答案 1 :(得分:-1)

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

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

sudo chmod 765 aescrypt.sh

为此你必须找到文件所在的位置