![工作示例](https://linux22.com/image/870493/%E5%B7%A5%E4%BD%9C%E7%A4%BA%E4%BE%8B.png)
嗨,我一直收到错误
./imagehash.sh: line 2: =: command not found
当我知道我$CMD
正确设置了变量时(我尝试了 bash 脚本之外的命令并且它运行良好)
这是我的 bash 脚本
#!/bin/bash
$CMD='md5sum ../Desktop/cases/CourseworkCase/Evidence/image.dd'
echo $CMD
更新
修复了 bash,使$CMD
变量中没有空格并将''
其放在周围,但现在我得到了错误文件,no such file or directory
我查看了路径并逐个字母复制了它,它是正确的。
我在这里做错了什么?
答案1
工作示例
#!/bin/bash
CMD="$(md5sum ../Desktop/cases/CourseworkCase/Evidence/image.dd)"
echo $CMD
解释
分配变量
$
永远不要在前面放标志等号周围也没有空格。bash 中的变量赋值如下:MYVAR="CONTENT"
要使用命令的输出创建变量,您可以使用
$(command)
。这将执行command
并返回其输出。输出
md5sum
将会像这样:f110abe5b3cfd324c2e5128eb4733879 image.dd
如果您想要隔离文件名的 md5 值,则可以使用以下其中一行:
CMD="$(md5sum ../Desktop/cases/CourseworkCase/Evidence/image.dd | cut -d ' ' -f 1)" CMD=($(md5sum ../Desktop/cases/CourseworkCase/Evidence/image.dd))