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
Чтобы назначить переменную, никогда не ставьте
$
подписать раньше. Назначение переменной в bash выглядит так:MYVAR="CONTENT"
- Неправильное присвоение переменной - это та, которая содержит пробелы вокруг знака равенства или имеет доллар перед присваиваемым именем переменной. (т.е.
$MYVAR = "CONTENT"
)
- Неправильное присвоение переменной - это та, которая содержит пробелы вокруг знака равенства или имеет доллар перед присваиваемым именем переменной. (т.е.
Для создания переменной с выходом программы вы можете использовать
$(mycommand)
, Это выполнитmycommand
и вернуть его вывод.Выход из
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))