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}'
理由がわかりませんか?私がしている何か問題はありますか?
この行にいくつかの構文がありません:
_local_md5sum=/usr/bin/md5sum "$entry" | awk '{print $1}'
_
あなたが必要です
_local_md5sum=$(/usr/bin/md5sum "$entry" | awk '{print $1}')
_
$()
がない場合、コマンドとしてexecute _$entry
_を実行しようとしています。