我写了一个小脚本,用它来取一个文件的名字。
#objectname
echo "objectname"
read ON
再简单不过了。
我对获得的文件进行一些处理。
gpg -c --no-use-agent "$ON"
例如,如果我有一个文件 a.exe
--> 它将加密它并给我一个具有不同 md5 和扩展名的文件。现在,文件看起来像这样 a.exe.gpg
现在,如果我直接给它绑定(bind)文件名。
例如: 取自:这个 link
# This works
fileName='a.exe.gpg'
md5sum=$(md5sum ${fileName})
echo $md5sum
它正确地返回它。
如果我想动态地做呢。
这是我尝试过的:
#does not work
gpg -c --no-use-agent "$ON"
fileName= `$ON.gpg`
md5sum= $(md5sum ${fileName})
echo $md5sum
我在这里遇到这个错误:upload.sh: 1: upload.sh: Fire.exe.gpg: not found
并且程序没有退出。
请问我到底哪里出错了?
最佳答案
错误在这里:
fileName= `$ON.gpg`
=
后不能有空格。 (另请查看下一行。)- 您使用了反引号,它执行
$ON.gpg
而不是简单地计算它。反引号与$(...)
相同,但不够优雅。为此使用双引号。
阅读Greg's wiki entry on quotes以获得带有自以为是的评论的超详细解释。 :-)
关于shell脚本引用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11571355/