web-dev-qa-db-ja.com

シェルスクリプトを使用してファイルのmd5sumを取得中にアクセスが拒否されましたか?

PRIMARYディレクトリ内のファイルのmd5sumを取得する以下のシェルスクリプトを実行しています

#!/bin/bash

export PRIMARY=/data01/primary

for entry in "$PRIMARY"/*
do
    local_md5sum=/usr/bin/md5sum "$entry" | awk '{print $1}'
    echo local_md5sum
done

上記のシェルスクリプトを実行してファイルのmd5sum値を出力しようとすると、常に次のようになります。

./md5checksum_check_1.sh: line 7: /test01/prime/pp_monthly_1980_58_200003_5.data: Permission denied

しかし、コンソール上で以下のコマンドを実行しようとすると、正常に動作します-

/usr/bin/md5sum /test01/prime/pp_monthly_1980_58_200003_5.data | awk '{print $1}'

理由がわかりませんか?私がしている何か問題はありますか?

1
david

この行にいくつかの構文がありません:

_local_md5sum=/usr/bin/md5sum "$entry" | awk '{print $1}'
_

あなたが必要です

_local_md5sum=$(/usr/bin/md5sum "$entry" | awk '{print $1}')
_

$()がない場合、コマンドとしてexecute _$entry_を実行しようとしています。

3
glenn jackman