Frage Bashscript macht eine Variable gleich einem Befehl. Fehlerbefehl nicht gefunden


Hi ich bekomme den Fehler immer wieder

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

Wenn ich weiß, dass ich das eingestellt habe $CMD Variable korrekt (Ich habe den Befehl außerhalb des Bash-Skripts versucht und es hat gut funktioniert)

Hier ist mein Bash-Skript

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

AKTUALISIEREN

Die bash wurde so korrigiert, dass keine Leerzeichen in der $CMD variabel und gesetzt '' drum herum aber jetzt bekomme ich die Fehlerdatei no such file or directory Ich schaute auf den Pfad und kopierte es Brief für Brief und seine Richtigkeit.

Was mache ich hier falsch?


1
2018-04-06 10:08


Ursprung




Antworten:


Der richtige Code ist dies:

#!/bin/bash
CMD=$(md5sum ../Desktop/cases/CourseworkCase/Evidence/image.dd)
echo $CMD
  1. Um eine Variable zuzuweisen Setze nie ein $ Zeichen vorher. Die Variablenzuweisung in bash lautet wie folgt:

    MYVAR="CONTENT"
    
    • Eine falsche Variablenzuweisung ist diejenige, die Leerzeichen um das Gleichheitszeichen enthält oder einen Dollar vor dem Variablennamen hat, der zugewiesen werden soll. (d.h. $MYVAR = "CONTENT")
  2. Um eine Variable mit der Programmausgabe zu erstellen, die Sie verwenden können $(mycommand). Dies wird ausgeführt mycommand und gibt seine Ausgabe zurück.

  3. Die Ausgabe von md5sum wird so sein:

    f110abe5b3cfd324c2e5128eb4733879 image.dd
    

    Wenn Sie die MD5-Summe des Dateinamens isolieren möchten, können Sie stattdessen Folgendes verwenden:

    CMD=$(md5sum ../Desktop/cases/CourseworkCase/Evidence/image.dd | cut -d ' ' -f 1)
    

    oder dieses:

    CMD=($(md5sum ../Desktop/cases/CourseworkCase/Evidence/image.dd))
    

12
2018-04-06 10:12



Bitte vergessen Sie nicht, $ CMD anzugeben. Sie können dieses Tool verwenden, um Ihr Skript zu überprüfen: shellcheck.net - Nam Nguyen
@NamNguyen: Warum müssen Sie es angeben, bitte erläutern. - Helio
@helio: github.com/koalaman/shellcheck/wiki/SC2086 - Nam Nguyen
@NamNguyen: Ok, danke. - Helio