Форум программистов, компьютерный форум, киберфорум
Наши страницы

Shell, Bash

Войти
Регистрация
Восстановить пароль
 
 
pcmax
2 / 2 / 1
Регистрация: 29.01.2018
Сообщений: 172
#1

Bash: когда используются круглые, а когда - квадратные скобки? - Bash

10.03.2018, 21:42. Просмотров 354. Ответов 21
Метки нет (Все метки)

привет всем
помогите разобраться
не могу понять использование круглыс скобок и квадратных в bash.
да , уже гуглил, и если бы понял, то не беспокоил бы ВАс с Вашими важными делами.
гугл выдает, что круглые скобки для сравнения арифметических действий, а квадратные для сравнения строк. ок, тогда почем так?
Bash
1
2
3
4
while (1=1)
do
echo `sensors`
done
это не работает.
а вот так
Bash
1
2
3
4
5
#! /bin/bash
while [1=1]
do
echo `sensors`
done
работает.
квадратные скобки же для сравнения строк , а я сравниваю числа
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
10.03.2018, 21:42
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Bash: когда используются круглые, а когда - квадратные скобки? (Bash):

[Ada] Когда освобождать память под динамически созданную задачу? - Программирование
В книжке Гавва (п. 16.1.3) написано, что, если задачу создаём по new, то освобождать память надо самим через Ada.Unchecked_Deallocation ....

Составляем суточный рацион. Как правильно питаться, когда мало денег? - Haskell
Добрый вечер! Помогите с задачей. Прошу исправить мои ошибки в рассуждениях. Использовал для кода Haskell — более современные цены....

Функция, которая возвращает True только тогда, когда хотя бы два из трех её аргументов равны True - Haskell
Задание: Функция twoTrue :: Bool -> Bool -> Bool -> Bool, которая возвращает True тогда и только тогда, когда хотя бы два из трех её...

Когда нужно ставить скобки для функций, а когда нет - JavaScript
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Document</title> <link rel="stylesheet"...

Круглые и квадратные скобки при операторе new - C++
Требуются помощь в использовании оператора new! И так для начала вопросы для понимания, что произойдет при выполнении 2-ух вариантов кода...

Определить, корректно ли расставлены круглые, фигурные и квадратные скобки - C++
Вот такая вот нехитрая вроде бы задача: Для введённой пользователем с клавиатуры строки (максимальная длина строки — 80 символов)...

21
Marinero
Модератор
Эксперт NIX
1955 / 1625 / 496
Регистрация: 02.03.2015
Сообщений: 5,309
10.03.2018, 23:43 #2
Не будет работать никак. Квадратная скобка синоним команды test и между командой и аргументами должен быть пробел. Арифметическое действие - это двойные круглые скобки, которые в новых версиях bash могут быть заменены на 1 квадратную. А в общем
Bash
1
man bash
в помощь
1
nezabudka
669 / 254 / 89
Регистрация: 28.06.2015
Сообщений: 645
Записей в блоге: 11
11.03.2018, 16:49 #3
Вот так будет работать
Bash
1
while ((1))
или
Bash
1
while [ 1 ]
знак равенства ==
или
-eq
1
pcmax
2 / 2 / 1
Регистрация: 29.01.2018
Сообщений: 172
11.03.2018, 17:55  [ТС] #4
не доходит. я бы мог еще понять, что еденица -это true. но когда в скобки я прописываю ноль и цикл работает, то как то я теряюсь.
как вообще воспринимает скобки? можете объяснить, а то что то я туплю
0
nezabudka
669 / 254 / 89
Регистрация: 28.06.2015
Сообщений: 645
Записей в блоге: 11
11.03.2018, 18:17 #5
Bash
1
while (( 0 ))
Не будет работать
Bash
1
2
f=
while [ $f ]
Не будет работать потому, что переменная не определена
Но если ее пределить даже нулем то test возвращает true
1
pcmax
2 / 2 / 1
Регистрация: 29.01.2018
Сообщений: 172
11.03.2018, 18:58  [ТС] #6
ок.
если я хочу написать цикл, который будет выполнятся до тех пор пока
Bash
1
2
3
4
5
6
7
#!/bin/bash/
s=1
while  10>s
do
echo "hi"
s=$((s+1))
done
какие я скобки должен поставить?
0
volvo
Супер-модератор
Эксперт Pascal/DelphiАвтор FAQ
25535 / 17088 / 5416
Регистрация: 22.10.2011
Сообщений: 30,257
Записей в блоге: 7
11.03.2018, 19:07 #7
Квадратные:
Bash
1
while [ $s -lt 10 ]
1
pcmax
2 / 2 / 1
Регистрация: 29.01.2018
Сообщений: 172
11.03.2018, 19:08  [ТС] #8
почему?
0
nezabudka
669 / 254 / 89
Регистрация: 28.06.2015
Сообщений: 645
Записей в блоге: 11
11.03.2018, 19:17 #9
pcmax,
Bash
1
for((i=0; i < 10; i++)); do echo hi; done
Добавлено через 5 минут
Bash
1
2
3
4
5
6
7
#!/usr/bin/env bash
s=0
while [ $s -lt 10 ]
do
echo "hi"
((s++))
done
Добавлено через 2 минуты
Bash
1
2
3
4
5
6
7
#!/usr/bin/env bash
s=1
while [[ $s != 10 ]]
do
echo "hi"
((s++))
done
1
pcmax
2 / 2 / 1
Регистрация: 29.01.2018
Сообщений: 172
11.03.2018, 19:20  [ТС] #10
я хочу понять почему квадратные скобки...
почему не круглые?
0
nezabudka
669 / 254 / 89
Регистрация: 28.06.2015
Сообщений: 645
Записей в блоге: 11
11.03.2018, 19:56 #11
pcmax, Потому, что квадратные скобки это синоним команды test
Набери в терминале
Bash
1
man test
Добавлено через 6 минут
Bash
1
2
3
4
5
6
7
#!/usr/bin/env bash
s=0
while test $s -lt 10
do
echo "hi"
((s++))
done
1
pcmax
2 / 2 / 1
Регистрация: 29.01.2018
Сообщений: 172
11.03.2018, 19:59  [ТС] #12
ладно, тут что -то или со мной или с bash. нахожу из учебника готовый код, забиваю, и он выдает ошибку. пишу выдуманный код-скрипт и все работает без ошибок.

Добавлено через 54 секунды
ошибку выдает, из того что вы написали.... хотя я понимаю, что с точки синтаксиса Вы все правильно написали
0
nezabudka
669 / 254 / 89
Регистрация: 28.06.2015
Сообщений: 645
Записей в блоге: 11
11.03.2018, 20:08 #13
pcmax, Строку ошибки в студию! )))
0
pcmax
2 / 2 / 1
Регистрация: 29.01.2018
Сообщений: 172
11.03.2018, 20:50  [ТС] #14
как сюда загрузить файл с выводом ошибки?
0
Marinero
Модератор
Эксперт NIX
1955 / 1625 / 496
Регистрация: 02.03.2015
Сообщений: 5,309
11.03.2018, 20:52 #15
pcmax, Зачем файл? Текст выделить и вставить
0
11.03.2018, 20:52
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
11.03.2018, 20:52
Привет! Вот еще темы с ответами:

Поменять в тексте квадратные скобки на круглые. Подсчитать количество замен. - Turbo Pascal
Помогите. Поменять в тексте квадратные скобки на круглые. Подсчитать количество замен.

Синтаксическая проверка программ на C, таких как непарные круглые, квадратные и фигурные скобки - C (СИ)
Задание: Упражнение 1.24. Напишите программу для выполнения примитивной синтаксической проверки программ на C, таких как непарные круглые,...

Когда нужно использовать структуры, когда классы, а когда словарь? - C#
Хеллоу. Не могу понять, когда, что, нужно использовать. Допустим мне нужно получить объект, который имеет список объектов. И...

Когда используются пары регистров? - Программирование
здравствуйте, когда используются пары регистров . Например цепочечная команда movs es:di, da:si. Эти пары регистров через двоеточие всегда...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
15
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru