Ich möchte einen Wert aus einer Textdatei lesen und mit einer Zahl vergleichen

Ich möchte einen Wert aus einer Textdatei lesen und mit einer Zahl vergleichen

Ich verwende Windows Powershell. Ich möchte eine Nummer abrufen, die in einer Textdatei gespeichert ist, und sie mithilfe eines Shell-Skripts mit einer anderen Nummer vergleichen. Wenn ich verwende, wird $x=$(cat value.txt)"Befehl nicht gefunden" angezeigt. Wenn ich verwende

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

die Ausgabe enthält „hi“, unabhängig vom Wert von num. Der else-Teil wird ausgeführt, unabhängig vom Wert von num. Gibt es eine andere Möglichkeit? Ich habe auch alle anderen Möglichkeiten zum Lesen eines Werts aus einer Datei ausprobiert.

Antwort1

Powershell verfügt über integrierte Aliase für einige funktional gleichwertige Shell-Befehle. Wie Sie bereits festgestellt haben,KatzeBefehl funktioniert einwandfrei.

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

Allerdings unterscheiden sich Powershell- und Shell-Skripte in der Syntax. Das Obige sollte mit demWennAnweisung, die stattdessen unten angezeigt wird.

cat value.txt | % {

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

verwandte Informationen