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
この行にいくつかの構文がありません。
local_md5sum=/usr/bin/md5sum "$entry" | awk '{print $1}'
あなたはする必要があります
local_md5sum=$(/usr/bin/md5sum "$entry" | awk '{print $1}')
いいえ$()
、努力しています。実装する $entry
コマンドで。