Permissão negada ao obter o md5sum de um arquivo usando o shell script?

1

Estou executando meu script de shell abaixo, que obtém o md5sum de um arquivo no meu diretório PRIMARY

#!/bin/bash

export PRIMARY=/data01/primary

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

Assim que eu executo o script shell e tento imprimir o valor md5sum dos meus arquivos, sempre obtenho -

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

Mas se eu tentar executar o comando abaixo como ele está no console, ele funcionará bem -

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

Eu não sei por quê? Há algo de errado que estou fazendo?

    
por david 22.09.2014 / 22:07

1 resposta

3

Você está perdendo alguma sintaxe nesta linha:

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

Você precisa

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

Sem o $() , você está tentando executar $entry como um comando.

    
por 22.09.2014 / 22:14