web-dev-qa-db-ja.com

変数をコマンドに等しくするBashスクリプト。エラーコマンドが見つかりません

こんにちは、エラーが発生し続けます

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

$CMD変数を正しく設定していることがわかっている場合(bashスクリプトの外部でコマンドを試してみたところ、うまくいきました)

これが私のbashスクリプトです

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

更新

$CMD変数にスペースがなく、''を囲むようにbashを修正しましたが、今はエラーファイルno such file or directoryを取得しています。パスを見て、文字をコピーして、あたりです。

ここで何が間違っていますか?

1
Lmnoppy

実施例

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

説明

  1. 変数を割り当てるには$記号を前に置かないでくださいまたは等号の前後にスペースを入れないでください。 bashでの変数の割り当ては次のとおりです。

    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))
    
12
Helio