Сценарий Bash, ошибка "Список аргументов слишком длинный"

попробуй это:

wgethttps://github.com/Itseez/opencv/archive/3.2.0.zip-O opencv -3.2.0.zip

распаковать opencv -3.2.0.zip

-1
08.05.2019, 19:38
1 ответ

Список ошибок , на который вы ссылались в вашем PasteBin , вводит вас в заблуждение.

Вы получаете сообщение об ошибке номер 7, но это код завершения программы, а не системный код ошибки. Они совершенно не связаны.

Я считаю, что реальная проблема заключается просто в том, что вы пытаетесь дважды добавить один и тот же маршрут отклонения:

# route add 152.48.25.29 reject; echo SS=$?
SS=0
# route add 152.48.25.29 reject; echo SS=$?
SIOCADDRT: File exists
SS=7

Вы также получите тот же код выхода из route, если попытаетесь удалить несуществующий -маршрут:

# route delete 152.48.25.29 reject; echo SS=$?
SS=0
# route delete 152.48.25.29 reject; echo SS=$?
SIOCDELRT: No such process
SS=7

Чтобы устранить проблему, вам нужно управлять оболочкой. Вы можете либо проверить маршрут отклонения, прежде чем пытаться его добавить, либо просто отбросить возврат ошибки. В этом примере предпочтение отдается второму (упрощенному )подходу, но вам может понадобиться другой вариант:

#!/bin/bash
route add 152.48.25.29 reject 2>/dev/null
exit 0

(Вы ведь знаете, как передавать и ссылаться на параметры в скрипт, используя "$1"и друзей, а не дословно внедрять IP-адреса, не так ли?)

1
28.01.2020, 05:09

Теги

Похожие вопросы