我是bash和使用.sh文件的新手。我试图通过在.sh文件中调用它来运行程序aescrypt,如下所示(aescrypt与.sh文件位于同一目录中):
./aescrypt -e -p password file.txt
它会抛出以下错误:
./aescrypt no such file or directory
我做错了吗?
ps-我真的不想将它添加到PATH变量,因为我将在每天重置的多台计算机上使用它。
答案 0 :(得分:2)
脚本的位置无关紧要。重要的是执行脚本的进程的工作目录。最简单的解决方案是将aescrypt添加到标准位置,例如/bin
或/usr/bin
。如果这些都不可接受,那么/usr/local/bin
可能是一种选择。否则,只需在脚本中使用aescrypt
的完整路径即可。要么对其进行硬编码,要么与脚本位于同一目录中,请尝试:
$(dirname $0)/aescrypt ...
(请注意,硬编码更可靠,但灵活性较差。如果移动可执行文件,脚本将会中断。但如果脚本在执行期间更改目录,则使用dirname
将会中断。)
答案 1 :(得分:-1)
如果你调用像./aescrypt.sh这样的程序怎么样,这就是通过终端调用.sh程序的方法
首先,您还要更改文件的权限以使其可执行,这样做的方法是在终端中写入命令:
sudo chmod 765 aescrypt.sh
为此你必须找到文件所在的位置