Stat trabalhando no Bash 4.3, mas não no Bash 3.2?

3

Estou usando o stat e, por algum motivo, ele funciona em um dos meus servidores que executam a versão mais recente do bash, mas não na versão mais antiga. Claro que os erros são realmente genéricos, mas estão vindo do seguinte bloco de código:

while IFS='' read -r line || [[ -n $line ]]; do
IFS=' ' read size file <<< $line
containsElement "$(stat -c %U $file)" "${users[@]}"
if [ $(echo $?) == "1" ] ; then
    rm -f $DU_SAVE-$(stat -c %U $file)_du.txt
    users+=("$(stat -c %U $file)")
fi

echo $line >> $DU_SAVE-$(stat -c %U "$file")_du.txt
done < "${DU_SAVE}_du.txt"

O uso do programa não é tão importante, mas ele captura as informações do usuário de um comando DU salvo anteriormente no arquivo e as adiciona a uma lista. Onde estão os erros:

stat: missing operand Try stat --help' for more information. stat: cannot stat': No such file or directory

Sobre cada arquivo.

Edit: Eu notei que o comando de leitura é o que está atrapalhando stat, o mesmo código funciona perfeitamente em uma versão mais recente do bash, talvez eu esteja dizendo errado.

    
por insidesin 20.07.2015 / 17:55

1 resposta

3

É claro que eu gasto um tempo para obter a solução, então decido perguntar aqui e resolvê-lo dentro de 10 minutos de perguntar aqui ... Eu faço muito isso.

A solução era que meu comando de divisão variável simplesmente não queria trabalhar com esta versão do bash, então, em vez disso, recorri apenas a cut com um delimitador de ' ' :)

    
por 20.07.2015 / 18:07

Tags