Бесплатный хостинг в Интернете для рабочих станций

<Предыдущая | Содержание: | Следующая>

Более современная версия теста

Последние версии колотить включить составную команду, которая действует как расширенная замена тестXNUMX. Он использует следующий синтаксис:

[[ выражение ]]

где, типа тестXNUMX, выражение это выражение, которое дает либо истинный, либо ложный результат. [[]] команда очень похожа на тестXNUMX (он поддерживает все свои выражения), но


добавляет важное новое строковое выражение:

string1 =~ регулярное выражение

который возвращает истину, если string1 соответствует расширенному регулярному выражению регулярное выражение. Это открывает массу возможностей для выполнения таких задач, как проверка данных. В нашем предыдущем примере целочисленных выражений сценарий завершится ошибкой, если константа INT содержало что угодно, кроме целого числа. Скрипту нужен способ проверки того, что константа содержит целое число. С использованием [[]] с =~ оператор строкового выражения, мы могли бы улучшить скрипт следующим образом:



#! / Bin / Баш


# test-integer2: оценить значение целого числа.


ИНТ = -5


если [["$ INT" = ~ ^ -? [0-9] + $]]; тогда

если [ $INT -eq 0 ]; затем отобразите «INT равно нулю».

еще

если [$ INT -lt 0]; затем эхо «INT отрицательно».

еще

echo "INT положительный."

fi

если [$ ((INT% 2)) -экв 0]; затем эхо "INT четное".

еще

echo "INT нечетный."

fi

fi

еще

echo "INT не является целым числом." > & 2 выход 1

fi

#! / Bin / Баш


# test-integer2: оценить значение целого числа.


ИНТ = -5


если [["$ INT" = ~ ^ -? [0-9] + $]]; тогда

если [ $INT -eq 0 ]; затем отобразите «INT равно нулю».

еще

если [$ INT -lt 0]; затем эхо «INT отрицательно».

еще

echo "INT положительный."

fi

если [$ ((INT% 2)) -экв 0]; затем эхо "INT четное".

еще

echo "INT нечетный."

fi

fi

еще

echo "INT не является целым числом." > & 2 выход 1

fi


Применяя регулярное выражение, мы можем ограничить значение INT использовать только строки, начинающиеся с необязательного знака минус, за которым следует одна или несколько цифр. Это выражение также исключает возможность пустых значений.

Еще одна дополнительная функция [[]] в том, что == Оператор поддерживает сопоставление с образцом так же, как и расширение пути. Например:



[я @ linuxbox ~] $ ФАЙЛ=foo.bar

[я @ linuxbox ~] $ ФАЙЛ=foo.bar

Более современная версия теста


[я @ linuxbox ~] $ если [[ $FILE == foo.* ]]; затем

> echo "$FILE соответствует шаблону 'foo.*'"

> fi

foo.bar соответствует шаблону «foo.*»

[я @ linuxbox ~] $ если [[ $FILE == foo.* ]]; затем

> echo "$FILE соответствует шаблону 'foo.*'"

> fi

foo.bar соответствует шаблону «foo.*»


Это делает [[]] полезно для оценки файлов и путей.


Лучшие облачные вычисления для ОС в OnWorks: