Я использую 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
вывод содержит "hi" независимо от значения num. Часть 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' }
}