-gt: унарный оператор ожидал ошибку в bash

Я написал этот простой скрипт:

i = "1";
b = "4";
if [ "$i"-gt "$b" ]
then
echo ""
fi

Но я получил эту ошибку при попытке запустить его:

[: -gt: unary operator expected

Что такое вонг?

1 ответ

Решение

Пожалуйста, предоставьте полный список ошибок, как вы просите;-)

Программа 'i' в настоящее время не установлена. Вы можете установить его, набрав:
sudo apt-get установить iprint
b: команда не найдена
bash: [: -gt: ожидается унарный оператор

Это имеет только тонкие различия, но работает; изучить это:

я ="1";
б ="4";
if [ "$i" -gt "$b" ]
затем
  эхо "Большого"
еще
  эхо "НЕ БОЛЬШОЙ"
фи
  1. i = "1" интерпретируется bash для запуска i с параметрами = а также "1",
  2. "$i" из-за 1) ничего не было установлено, то есть "" (нулевая строка) - то же самое с "$b"

Это делает [ "$i"-gt "$b" ] читать как [ -gt ] как интерпретация приходит к этому моменту. Также обратите внимание, что, как вы исправили 1) у вас все еще есть проблема "нет места" между "$i" а также -gt

Другие вопросы по тегам