我想从文本文件中读取一个值并将其与数字进行比较

我想从文本文件中读取一个值并将其与数字进行比较

我正在使用 Windows Powershell。我想检索存储在文本文件中的数字,并使用 shell 脚本将其与其他数字进行比较。如果我使用$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”。无论 num 的值是什么,else 部分都会执行。还有其他方法吗?我也尝试了从文件读取值的所有其他方法。

答案1

Powershell 具有一些功能等效的 shell 命令的内置别名。正如您所发现的命令运行正常。

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

但是,Powershell 和 shell 脚本的语法不同。上面的代码应该使用如果如下所示的语句。

cat value.txt | % {

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

相关内容