Quiero leer un valor de un archivo de texto y compararlo con un número

Quiero leer un valor de un archivo de texto y compararlo con un número

Estoy usando windows powershell. Quiero recuperar un número que está almacenado en un archivo de texto y compararlo con algún otro número usando un script de Shell. Si lo uso $x=$(cat value.txt)dice "comando no encontrado". cuando uso

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

la salida contiene "hola" independientemente del valor del número. La parte else se ejecuta sin importar cuál sea el valor de num. ¿Hay alguna otra manera? También probé todas las demás formas de leer un valor de un archivo.

Respuesta1

Powershell tiene alias integrados para algunos comandos de shell funcionalmente equivalentes. Como has descubierto elgatoEl comando funciona perfectamente bien.

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

Sin embargo, los scripts de Powershell y Shell difieren en la sintaxis. Lo anterior debe escribirse utilizando elsideclaración que se muestra a continuación.

cat value.txt | % {

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

información relacionada