3 / 3 / 0
Регистрация: 08.02.2011
Сообщений: 49
|
||||||
1 | ||||||
Проверка количества аргументов в скрипте04.03.2018, 12:12. Показов 8070. Ответов 10
Метки нет (Все метки)
Есть скрипт, который запускается с четырьмя параметрами.
Хочу сделать элементарную проверку на количество параметров
0
|
04.03.2018, 12:12 | |
Ответы с готовыми решениями:
10
Установка ограничения количества пользователей онлайн в скрипте Сумма произвольного количества аргументов из командной строки Поведение функции в зависимости от количества переданных аргументов С++ проверка аргументов |
2795 / 2038 / 682
Регистрация: 02.03.2015
Сообщений: 6,509
|
|
04.03.2018, 12:24 | 2 |
Стоит выучить синтаксис
0
|
342 / 197 / 52
Регистрация: 18.10.2017
Сообщений: 1,938
|
||||||
04.03.2018, 16:03 | 3 | |||||
Сообщение было отмечено Marinero как решение
Решение
Сначала попробуйте после открывающей скобки и перед закрывающей ставить пробелы, а также точнее соблюдать синтаксис:
1
|
3 / 3 / 0
Регистрация: 08.02.2011
Сообщений: 49
|
|
05.03.2018, 01:46 [ТС] | 4 |
Огромное всем спасибо Всё получилось.
0
|
0 / 0 / 0
Регистрация: 19.03.2022
Сообщений: 57
|
||||||
19.03.2022, 12:22 | 5 | |||||
Всем привет. Столкнулся со следующей задачей на bash: необходимо подсчитать количество и сумму параметров командной строки. Написал такой скрипт:
Господа, просветите, в чем я ошибся?
0
|
896 / 268 / 54
Регистрация: 30.08.2017
Сообщений: 1,776
|
|
19.03.2022, 14:02 | 6 |
ну так
фор и=1; и<=1; ++и сум = 0 + 1 доне Всё... Один раз цикл прошёл и хватит. у Вас же я вижу сумму членов арифметической прогресии на вскидку.
0
|
0 / 0 / 0
Регистрация: 19.03.2022
Сообщений: 57
|
|
19.03.2022, 14:18 | 7 |
Когда баг этот нашел, то сначала подумал в код дополнителную ветку if...else добавить, но не хочется захламлять код, потому что вроде бы как он должен работать. Скрипт должен считывать сумму независимо от количества переданных аргументо, хоть 1, хоть 100. И вопрос в том, что не так с кодом для одного аргумента? Если по-другому никак не реализовать, то добавлю дополнительное условие.
Сразу оговорюсь, что учусь писать на bash. Пересмотрел много статей на эту тему, но там примеры только для определенного количества аргументов, а для заранее неизвестного примеров кода нет.
0
|
896 / 268 / 54
Регистрация: 30.08.2017
Сообщений: 1,776
|
|
19.03.2022, 17:10 | 8 |
Повторю - Вы складываете не значения аргументов, а вычисляете сумму арифметической прогрессии ($i - это значение счётчика цикла, а не значение какого-либо параметра! надо типа такого - sum=$(($1+$2))), я же расписал Вам итерацию цикла, что в коде получился.
для перебора аргументов надо их сдвигать shift Вот хороший цикл статей и ссылка на ваш случай: https://habr.com/ru/company/ruvds/blog/326328/
0
|
0 / 0 / 0
Регистрация: 19.03.2022
Сообщений: 57
|
|
19.03.2022, 17:11 | 9 |
А почему $i не рассматривается как $1, $2... и так далее, пока не $i не будет равен $#, то бишь их количеству? Я думал sum=sum + $1, далее к тому, что получилось, прибавляем $2. Ну и так далее.
Статьи эти читал, да, про shift там есть...
0
|
342 / 197 / 52
Регистрация: 18.10.2017
Сообщений: 1,938
|
||||||
19.03.2022, 18:07 | 10 | |||||
Потому что у вас $i - это имя переменной i. Вам же сказали, что надо использовать shift.
Я предпочитаю конструкции
0
|
0 / 0 / 0
Регистрация: 19.03.2022
Сообщений: 57
|
|
19.03.2022, 19:51 | 11 |
Сделал с помощью shift, все работает. Спасибо всем за помощь!
0
|
19.03.2022, 19:51 | |
19.03.2022, 19:51 | |
Помогаю со студенческими работами здесь
11
Ошибка в скрипте (скрипт для скачивания файлов с моего сайта с указанием количества раз) Clojure Арность функций - Несоответствие количества аргументов ожидаемому количеству Передача неизвестного количества аргументов в функцию, как реализовать? Проверка аргументов программы Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |