工作示例

工作示例

嗨,我一直收到错误

./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

解释

  1. 分配变量$永远不要在前面放标志等号周围也没有空格。bash 中的变量赋值如下:

    MYVAR="CONTENT"
    
  2. 要使用命令的输出创建变量,您可以使用$(command)。这将执行command并返回其输出。

  3. 输出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))
    

相关内容