Вопросы с тегом «test»

Это касается утилиты Unix «test», также вызываемой как «[», или ее варианта синтаксиса оболочки [[…]]. Для вопросов о тестировании программного обеспечения и настроек используйте тег «testing».

6
В чем разница между операторами Bash [[vs [vs (vs ((?)
Я немного запутался в том, что эти операторы делают по-разному при использовании в bash (скобки, двойные скобки, круглые скобки и двойные скобки). [[ , [ , ( , (( Я видел, как люди используют их, если такие заявления: if [[condition]] if [condition] if ((condition)) if (condition)
248 bash  shell  test 

4
Почему расширение параметров с пробелами без кавычек работает в двойных скобках «[[», но не в одинарных скобках «[»?
Я запутался с использованием одинарных или двойных скобок. Посмотрите на этот код: dir="/home/mazimi/VirtualBox VMs" if [[ -d ${dir} ]]; then echo "yep" fi Это работает отлично, хотя строка содержит пробел. Но когда я изменяю это на одну скобку: dir="/home/mazimi/VirtualBox VMs" if [ -d ${dir} ]; then echo "yep" fi Это …
86 bash  quoting  ksh  test 

12
Как проверить, существует ли переменная в операторе if?
Мне нужно проверить существование переменной в ifзаявлении. Что-то с эффектом: if [ -v $somevar ] then echo "Variable somevar exists!" else echo "Variable somevar does not exist!" И самый близкий вопрос к этому был этим , который фактически не отвечает на мой вопрос.
70 shell  variable  test 


5
Как именно работает «/ bin / [»?
Я всегда удивляюсь, что в папке /binесть [программа. Это то , что называется , когда мы делаем что - то вроде: if [ something ]? Вызывая [программу явно в оболочке, она запрашивает соответствующую ], а когда я предоставляю закрывающую скобку, она, кажется, ничего не делает, независимо от того, что я …
50 shell  test 

7
Является ли тест или [или [[более переносимым как между оболочками Bash, так и между другими оболочками?
Я вижу, я могу сделать $ [ -w /home/durrantm ] && echo "writable" writable или $ test -w /home/durrantm && echo "writable" writable или $ [[ -w /home/durrantm ]] && echo "writable" writable Мне нравится использовать третий синтаксис. Они эквивалентны во всех отношениях и для всех отрицательных и краевых случаев? …

2
Тест Bash: что делает «= ~»?
#!/bin/bash INT=-5 if [[ "$INT" =~ ^-?[0-9]+$ ]]; then echo "INT is an integer." else echo "INT is not an integer." >&2 exit 1 fi Что делает ведущий ~в начальном регулярном выражении?
41 bash  test 


6
Проверка, является ли входной номер целым числом
Я пытаюсь проверить, является ли ввод целым числом, и я прошел через него сто раз, но не вижу ошибки в этом. Увы, он не работает, он запускает оператор if для всех входных данных (цифры / буквы) read scale if ! [[ "$scale" =~ "^[0-9]+$" ]] then echo "Sorry integers only" …

8
Проверьте, существуют ли файлы, соответствующие шаблону, чтобы выполнить скрипт
Я пытаюсь написать ifзаявление, чтобы проверить, есть ли какие-либо файлы, соответствующие определенному шаблону. Если в каталоге есть текстовый файл, он должен запустить данный скрипт. Мой код в настоящее время: if [ -f /*.txt ]; then ./script fi Пожалуйста, дайте несколько идей; Я хочу запустить скрипт, только если .txtв каталоге есть.

2
Ошибка в тесте скобки оболочки, когда строка является левой скобкой
Раньше я был уверен в том, что цитирование строк - это всегда хорошая практика, чтобы избежать его разбора оболочкой. Потом я наткнулся на это: $ x='(' $ [ "$x" = '1' -a "$y" = '1' ] bash: [: `)' expected, found 1 Попытка изолировать проблему, получая ту же ошибку: $ …
27 shell  test 


4
Тестирование, если переменная пуста в сценарии оболочки
Я видел следующую технику, которую много раз использовали на разных оболочках, чтобы проверить, является ли переменная пустой: if [ "x$1" = "x" ]; then # Variable is empty fi Есть ли какие-либо преимущества в использовании этого по сравнению с более каноническим if [ -z "$1" ]? Может ли это быть …

5
Как я могу использовать bash's if test и находить команды вместе?
У меня есть каталог с журналами сбоев, и я хотел бы использовать условный оператор в скрипте bash на основе команды find. Файлы журнала хранятся в следующем формате: /var/log/crashes/app-2012-08-28.log /var/log/crashes/otherapp-2012-08-28.log Я хочу, чтобы оператор if возвращал значение true только в том случае, если для определенного приложения есть журнал сбоев, который был …

4
Начиная с аргументов bash: -lt и -gt
Я начинаю с bash и обнаружил следующее: if test $first -lt $second then echo $first is lower than $second else if test $first -gt $second then echo $first is higher than $second else echo $first and $second are equals fi fi Для чтения сценария и его выполнения я знаю, что …
24 bash  shell  test 

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.