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' }
}