Bashscript делает переменную равной команде. команда ошибки не найдена

Привет я продолжаю получать ошибку

./imagehash.sh: line 2: =: command not found

Когда я знаю, что я установил $CMD Переменная правильно (я попробовал команду вне скрипта bash, и она работала просто отлично)

вот мой скрипт bash

#!/bin/bash
 $CMD='md5sum ../Desktop/cases/CourseworkCase/Evidence/image.dd'
 echo $CMD

ОБНОВИТЬ

исправлена ​​ошибка, поэтому в $CMD переменная и положить '' вокруг него, но теперь я получаю файл ошибки no such file or directory Я посмотрел на путь и скопировал его буква за буквой и ее правильно.

что я тут не так делаю?

1 ответ

Решение

Правильный код такой:

#!/bin/bash
CMD=$(md5sum ../Desktop/cases/CourseworkCase/Evidence/image.dd)
echo $CMD
  1. Чтобы назначить переменную, никогда не ставьте $ подписать раньше. Назначение переменной в bash выглядит так:

    MYVAR="CONTENT"
    
    • Неправильное присвоение переменной - это та, которая содержит пробелы вокруг знака равенства или имеет доллар перед присваиваемым именем переменной. (т.е. $MYVAR = "CONTENT")
  2. Для создания переменной с выходом программы вы можете использовать $(mycommand), Это выполнит mycommand и вернуть его вывод.

  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))
    
Другие вопросы по тегам