shell脚本引用

标签 shell

我写了一个小脚本,用它来取一个文件的名字。

#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`
  1. = 后不能有空格。 (另请查看下一行。)
  2. 您使用了反引号,它执行 $ON.gpg 而不是简单地计算它。反引号与 $(...) 相同,但不够优雅。为此使用双引号。

阅读Greg's wiki entry on quotes以获得带有自以为是的评论的超详细解释。 :-)

关于shell脚本引用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11571355/

相关文章:

linux - 如何使用 shell 脚本追加到特定行?

python - 从 Github 下载的项目设置错误

php - 从 .PHP 文件运行 BASH 脚本

linux - 在远程 ssh 命令中传递变量

linux - 如何使用 shell 脚本获取进程的所有子进程或孙进程的 pid

linux shell进程文本

linux - 如何使用 shell 脚本按名称对文件进行排序

linux - Bash 脚本 tee 命令语法问题

linux - 将代码从一个文件复制到另一个文件的命令

linux - 期望 "do"的 shell 脚本错误