X   Сообщение сайта
(Сообщение закроется через 3 секунды)



 

Здравствуйте, гость (

| Вход | Регистрация )

Открыть тему
Тема закрыта
> Linux, AWK - вопрос по синтаксису
leoworker
leoworker
Topic Starter сообщение 31.3.2019, 10:59; Ответить: leoworker
Сообщение #1


Здравствуйте.

Немного не понятно, почему когда я обрамляю while 

 

while( select in pick ) {

pick[ select ] = select;

}

 

фигурными скобками, мне выдается ошибка?

 

[PHP]awk: line 13: syntax error at or near {

awk: line 14: syntax error at or near }

awk: line 19: syntax error at or near }

awk: line 21: syntax error at or near }[/PHP]

 

?)))

 

#!/bin/bash

#

awk -v NUM=$1 -v TOPNUM=$2 '

BEGIN {

if( NUM <= 0 ) NUM = 6;

if( TOPNUM <= 0 ) TOPNUM = 30;

 

printf( "Pick %d of %d\n", NUM, TOPNUM );

srand();

 

for( j = 1; j <= NUM; ++j ) {

do {

select = 1 + int( rand() * TOPNUM );

}

while( select in pick )

pick[ select ] = select;

}

 

for( j in pick ) {

printf( "%s ", pick[ j ]);

}

printf( "\n" );

}

';

0
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
Андрей_WPM
Андрей_WPM
сообщение 31.3.2019, 11:47; Ответить: Андрей_WPM
Сообщение #2


leoworker, потому что у тебя в коде где вайл только закрывающая скобка, а открывающей нет.
После проверки истины цикла вайл, поставь открывающую скобку {, ты просто её пропустил.


--------------------
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
leoworker
leoworker
Topic Starter сообщение 31.3.2019, 11:51; Ответить: leoworker
Сообщение #3


(Андрей WPMasterKZ) *
@leoworker, потому что у тебя в коде где вайл только закрывающая скобка, а открывающей нет.

Повнимательнее, пожалуйста.
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
Андрей_WPM
Андрей_WPM
сообщение 31.3.2019, 11:59; Ответить: Андрей_WPM
Сообщение #4



Хотя нет, чуть позже с компа выйду посмотрю, с телефона не удобно.
 
leoworker, да, я уже увидел.

А ну правильно!
Цикл ду-вайл синтаксис нарушаешь скобками. Ситаксис же такой:
 

do{ // выполнять пока

}while(); // не будет истина.

Вот если ты ниже сделаешь ещё один вайл ниже этого, то тогда он будет работать.
То есть, отдельный вайл будет работать как положено, а ду-вайл синтаксис другой.


Сообщение отредактировал Андрей WPMasterKZ - 31.3.2019, 12:04


--------------------
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
Artos_mw
Artos_mw
сообщение 31.3.2019, 12:32; Ответить: Artos_mw
Сообщение #5


Может после while( select in pick ) поставить точку с запятой
while( select in pick );
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
Андрей_WPM
Андрей_WPM
сообщение 31.3.2019, 12:40; Ответить: Андрей_WPM
Сообщение #6


Конечно надо. По синтаксису положено.

do {
select = 1 + int( rand() * TOPNUM );
}
while( select in pick ) // вот здесь должна быть ;
pick[ select ] = select; // а вот это уже к циклу не относиться.

Чтобы последняя строчка работала в цикле, ниже создай ещё один цикл вайл и он будет работать со строкой pick[ select ] = select если она нужна.


Замечание модератора:
Эта тема была закрыта автоматически ввиду отсутствия активности в ней на протяжении 100+ дней.
Если Вы считаете ее актуальной и хотите оставить сообщение, то воспользуйтесь кнопкой
или обратитесь к любому из модераторов.


--------------------
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
Открыть тему
Тема закрыта
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0


Свернуть

> Похожие темы

  Тема Ответов Автор Просмотров Последний ответ
Открытая тема (нет новых ответов) Установить Anbox в Linux
0 freeax 557 8.3.2024, 19:36
автор: freeax
Горячая тема (нет новых ответов) Ускорение вашего сайта и сервера. Системный администратор Linux
44 EvaSystems 41810 6.2.2023, 13:07
автор: EvaSystems
Открытая тема (нет новых ответов) Услуги администрирования Linux, тех. поддержка
4 Madm 3107 3.9.2022, 16:33
автор: Madm
Открытая тема (нет новых ответов) Вопрос - платное размещение баннеров на сайте
10 WGN 3190 14.12.2020, 14:20
автор: Peterson
Горячая тема (нет новых ответов) Ускорение вашего сайта и сервера. Системный администратор Linux
44 Evas 16151 18.10.2020, 23:26
автор: Evas


 



RSS Текстовая версия Сейчас: 24.4.2024, 4:38
Дизайн