Linux

使用 shell 腳本獲取文件的 md5sum 時權限被拒絕?

  • September 22, 2014

我正在執行下面的 shell 腳本,它獲取我的 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

一旦我在 shell 腳本之上執行並嘗試列印出我的文件的 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}')

如果沒有$(),您將嘗試作為命令執行。 $entry

引用自:https://unix.stackexchange.com/questions/156928