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

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

Estou usando o Windows Powershell. Quero recuperar um número armazenado em um arquivo de texto e compará-lo com 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 parte else é executada independentemente do valor de num. Existe alguma outra maneira? Também tentei todas as outras maneiras de ler um valor de um arquivo.

Responder1

O Powershell possui aliases integrados para alguns comandos shell funcionalmente equivalentes. Como você descobriu ogatocomando funciona perfeitamente bem.

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

No entanto, os scripts Powershell e Shell diferem na sintaxe. O acima deve ser escrito usando osedeclaração mostrada abaixo.

cat value.txt | % {

    if ($_ -eq '1') { "hello" }
    elseif ($_ -eq '2') { 'world' }
    else { 'hi' }
}

informação relacionada