Eu quero ler um valor de um arquivo de texto e compará-lo com um número

1

Estou usando o powershell do windows. Eu quero recuperar um número que é armazenado em um arquivo de texto e compará-lo com algum outro número usando um script de shell. Se eu usar $x=$(cat value.txt) , diz "comando não encontrado". Quando eu uso

cat vaue.txt
(
read num
)
if [ "$num" == '1' ]; then
echo "hello"
elif [ "$num" == '2' ] then
echo "world"
else
echo "hi" 
fi

a saída contém "hi" independentemente do valor de num. A outra parte fica extinta, não importa qual seja o valor de num. Existe alguma outra maneira? Eu também tentei todas as outras maneiras de ler um valor de um arquivo.

    
por Kshitij bhat 23.03.2014 / 21:10

1 resposta

0

O Powershell possui aliases embutidos para alguns comandos de shell funcionalmente equivalentes. Como você descobriu, o comando cat funciona perfeitamente bem.

CommandType     Name                                               ModuleName
-----------     ----                                               ----------
Alias           cat -> Get-Content

No entanto, o Powershell e os shell scripts diferem na sintaxe. O texto acima deve ser escrito usando a declaração if mostrada abaixo.

cat value.txt | % {

    if ($_ -eq '1') { "hello" }
    elseif ($_ -eq '2') { 'world' }
    else { 'hi' }
}
    
por 13.04.2014 / 10:10