С Новым годом! Форум программистов, компьютерный форум, киберфорум
Shell, Bash
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.77/75: Рейтинг темы: голосов - 75, средняя оценка - 4.77
 Аватар для pcmax
443 / 74 / 7
Регистрация: 29.01.2018
Сообщений: 1,274

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

10.03.2018, 21:42. Показов 14839. Ответов 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
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
10.03.2018, 21:42
Ответы с готовыми решениями:

Когда нужно писать скобки после функции а когда нет?
Здравствуйте.Хотел вот задать такой простенький вопрос на примере моего кода. <form> <input type="text"...

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

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

21
Эксперт NIX
 Аватар для Marinero
2796 / 2039 / 682
Регистрация: 02.03.2015
Сообщений: 6,509
10.03.2018, 23:43
Не будет работать никак. Квадратная скобка синоним команды test и между командой и аргументами должен быть пробел. Арифметическое действие - это двойные круглые скобки, которые в новых версиях bash могут быть заменены на 1 квадратную. А в общем
Bash
1
man bash
в помощь
1
Эксперт NIX
 Аватар для nezabudka
3334 / 752 / 252
Регистрация: 28.06.2015
Сообщений: 1,552
Записей в блоге: 16
11.03.2018, 16:49
Вот так будет работать
Bash
1
while ((1))
или
Bash
1
while [ 1 ]
знак равенства ==
или
-eq
1
 Аватар для pcmax
443 / 74 / 7
Регистрация: 29.01.2018
Сообщений: 1,274
11.03.2018, 17:55  [ТС]
не доходит. я бы мог еще понять, что еденица -это true. но когда в скобки я прописываю ноль и цикл работает, то как то я теряюсь.
как вообще воспринимает скобки? можете объяснить, а то что то я туплю
0
Эксперт NIX
 Аватар для nezabudka
3334 / 752 / 252
Регистрация: 28.06.2015
Сообщений: 1,552
Записей в блоге: 16
11.03.2018, 18:17
Bash
1
while (( 0 ))
Не будет работать
Bash
1
2
f=
while [ $f ]
Не будет работать потому, что переменная не определена
Но если ее пределить даже нулем то test возвращает true
1
 Аватар для pcmax
443 / 74 / 7
Регистрация: 29.01.2018
Сообщений: 1,274
11.03.2018, 18:58  [ТС]
ок.
если я хочу написать цикл, который будет выполнятся до тех пор пока
Bash
1
2
3
4
5
6
7
#!/bin/bash/
s=1
while  10>s
do
echo "hi"
s=$((s+1))
done
какие я скобки должен поставить?
0
Супер-модератор
Эксперт Pascal/DelphiАвтор FAQ
 Аватар для volvo
33371 / 21497 / 8234
Регистрация: 22.10.2011
Сообщений: 36,893
Записей в блоге: 12
11.03.2018, 19:07
Квадратные:
Bash
1
while [ $s -lt 10 ]
1
 Аватар для pcmax
443 / 74 / 7
Регистрация: 29.01.2018
Сообщений: 1,274
11.03.2018, 19:08  [ТС]
почему?
0
Эксперт NIX
 Аватар для nezabudka
3334 / 752 / 252
Регистрация: 28.06.2015
Сообщений: 1,552
Записей в блоге: 16
11.03.2018, 19:17
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
443 / 74 / 7
Регистрация: 29.01.2018
Сообщений: 1,274
11.03.2018, 19:20  [ТС]
я хочу понять почему квадратные скобки...
почему не круглые?
0
Эксперт NIX
 Аватар для nezabudka
3334 / 752 / 252
Регистрация: 28.06.2015
Сообщений: 1,552
Записей в блоге: 16
11.03.2018, 19:56
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
443 / 74 / 7
Регистрация: 29.01.2018
Сообщений: 1,274
11.03.2018, 19:59  [ТС]
ладно, тут что -то или со мной или с bash. нахожу из учебника готовый код, забиваю, и он выдает ошибку. пишу выдуманный код-скрипт и все работает без ошибок.

Добавлено через 54 секунды
ошибку выдает, из того что вы написали.... хотя я понимаю, что с точки синтаксиса Вы все правильно написали
0
Эксперт NIX
 Аватар для nezabudka
3334 / 752 / 252
Регистрация: 28.06.2015
Сообщений: 1,552
Записей в блоге: 16
11.03.2018, 20:08
pcmax, Строку ошибки в студию! )))
0
 Аватар для pcmax
443 / 74 / 7
Регистрация: 29.01.2018
Сообщений: 1,274
11.03.2018, 20:50  [ТС]
как сюда загрузить файл с выводом ошибки?
0
Эксперт NIX
 Аватар для Marinero
2796 / 2039 / 682
Регистрация: 02.03.2015
Сообщений: 6,509
11.03.2018, 20:52
pcmax, Зачем файл? Текст выделить и вставить
0
 Аватар для pcmax
443 / 74 / 7
Регистрация: 29.01.2018
Сообщений: 1,274
11.03.2018, 20:52  [ТС]
Syntax error: Bad for loop variable
в этом духе
0
Эксперт NIX
 Аватар для Marinero
2796 / 2039 / 682
Регистрация: 02.03.2015
Сообщений: 6,509
11.03.2018, 21:14
pcmax, А код какой? for не было вроде...
1
 Аватар для pcmax
443 / 74 / 7
Регистрация: 29.01.2018
Сообщений: 1,274
11.03.2018, 21:59  [ТС]
был. выше написанно
я все циклы мучил в bash
for работает только так
Bash
1
2
3
4
5
for d in 1 2 3 4 5 6 
do 
 
 
done
в стиле c++
выдает ошибку.
и вообще мой bash как то странно воспринимает скобки
0
Эксперт NIX
 Аватар для Marinero
2796 / 2039 / 682
Регистрация: 02.03.2015
Сообщений: 6,509
12.03.2018, 11:57
Что-то не так делаете. Все работает
Code
1
2
>> for ((i=1;i<10;i++)); do echo -n $i\  ; done ; echo
1 2 3 4 5 6 7 8 9
Ну покажите версию вашего
Bash
1
bash --version
1
 Аватар для pcmax
443 / 74 / 7
Регистрация: 29.01.2018
Сообщений: 1,274
12.03.2018, 19:43  [ТС]
GNU bash, version 4.4.12(1)-release (x86_64-pc-linux-gnu)
да я уже рабята всяко пробовал

Добавлено через 2 минуты
я в нано пишу..... file.sh
потом запускаю sh file.sh

Добавлено через 3 часа 19 минут
в терминале работает, в скрипте нет. почему?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
12.03.2018, 19:43
Помогаю со студенческими работами здесь

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

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

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

Почему в цикле используются квадратные скобки при присвоении словаря?
&gt;&gt;&gt; dict = {} &gt;&gt;&gt; list = &gt;&gt;&gt; for x in range(0,100): ... dict = x ... list.append(dict) ... &gt;&gt;&gt; print...

Строка содержит арифметическое выражение, в котором используются круглые скобки, в том числе вложенные. Проверить, прави
Строка содержит арифметическое выражение, в котором используются круглые скобки, в том числе вложенные. Проверить, правильно ли в нем рас-...


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

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Новые блоги и статьи
сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11 — это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11 Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
Почему дизайн решает?
Neotwalker 09.01.2026
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
Модель микоризы: классовый агентный подход 3
anaschu 06.01.2026
aa0a7f55b50dd51c5ec569d2d10c54f6/ O1rJuneU_ls https:/ / vkvideo. ru/ video-115721503_456239114
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR
ФедосеевПавел 06.01.2026
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR ВВЕДЕНИЕ Введу сокращения: аналоговый ПИД — ПИД регулятор с управляющим выходом в виде числа в диапазоне от 0% до. . .
Модель микоризы: классовый агентный подход 2
anaschu 06.01.2026
репозиторий https:/ / github. com/ shumilovas/ fungi ветка по-частям. коммит Create переделка под биомассу. txt вход sc, но sm считается внутри мицелия. кстати, обьем тоже должен там считаться. . . .
Расчёт токов в цепи постоянного тока
igorrr37 05.01.2026
/ * Дана цепь постоянного тока с сопротивлениями и источниками (напряжения, ЭДС и тока). Найти токи и напряжения во всех элементах. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа и. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru