私はWindows PowerShellを使用しています。テキストファイルに保存されている数値を取得し、シェルスクリプトを使用して他の数値と比較したいのですが、使用すると$x=$(cat value.txt)
「コマンドが見つかりません」と表示されます。
cat vaue.txt
(
read num
)
if [ "$num" == '1' ]; then
echo "hello"
elif [ "$num" == '2' ] then
echo "world"
else
echo "hi"
fi
出力には、num の値に関係なく「hi」が含まれます。else 部分は、num の値が何であっても実行されます。他の方法はありますか? ファイルから値を読み取る他の方法もすべて試しました。
答え1
Powershellには、機能的に同等のシェルコマンドのエイリアスが組み込まれています。猫コマンドは完全に正常に動作します。
CommandType Name ModuleName
----------- ---- ----------
Alias cat -> Get-Content
ただし、Powershellとシェルスクリプトの構文は異なります。上記のスクリプトは、もし代わりに以下のステートメントを参照してください。
cat value.txt | % {
if ($_ -eq '1') { "hello" }
elseif ($_ -eq '2') { 'world' }
else { 'hi' }
}