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

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

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

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

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

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

UPDATE

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

Что я здесь не так делаю?

2
задан 6 April 2015 в 23:16

1 ответ

Рабочий пример

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

Объяснение

  1. Для присвоения переменной никогда не помещал $ знак прежде , ни пробелы вокруг знака "равно". Переменное присвоение в ударе похоже на это:

    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))
    
16
ответ дан 6 April 2015 в 13:16

Другие вопросы по тегам:

Похожие вопросы: