it-swarm.com.de

Bash Script, das eine Variable gleich einem Befehl macht. Fehler Befehl nicht gefunden

Hallo, ich bekomme immer den Fehler

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

Wenn ich weiß, dass ich die Variable $CMD richtig gesetzt habe (ich habe den Befehl außerhalb des Bash-Skripts ausprobiert und es hat einwandfrei funktioniert)

hier ist mein Bash-Skript

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

AKTUALISIEREN

bash behoben, so dass es keine Leerzeichen in der $CMD -Variablen gibt und '' um sie gelegt wird, aber jetzt erhalte ich die Fehlerdatei no such file or directory Ich habe den Pfad angesehen und es Buchstabe für Buchstabe kopiert und es ist richtig.

was mache ich hier falsch?

1
Lmnoppy

Arbeitsbeispiel

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

Erläuterung

  1. Um eine Variable zuzuweisen setzen Sie niemals ein $ -Zeichen vor oder Leerzeichen um das Gleichheitszeichen. Die Variablenzuweisung in der Bash sieht folgendermaßen aus:

    MYVAR="CONTENT"
    
  2. Um eine Variable mit der Ausgabe eines Befehls zu erstellen, können Sie $(command) verwenden. Dadurch wird command ausgeführt und die Ausgabe zurückgegeben.

  3. Die Ausgabe von md5sum sieht folgendermaßen aus:

    f110abe5b3cfd324c2e5128eb4733879 image.dd
    

    Wenn Sie die MD5-Summe des Dateinamens isolieren möchten, können Sie stattdessen eine der folgenden Zeilen verwenden:

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