Как изменить переменную в файле

Linux наиболее распространен на нижнем уровне, где его мощная встроенная сеть дает ему преимущество над менее функциональными встроенными ОС, которые раньше использовались для такие задачи. По сути, использование Linux экономит компаниям значительные деньги по сравнению с лицензированием ОС, достаточно подходящей для этой цели.

Cisco IOS не основана на Linux или какой-либо другой распространенной ОС, о которой я знаю. Вполне может быть полностью обычай. Cisco, безусловно, достаточно велика, чтобы добиться этого. Он не может быть основан на Linux, так как им придется раздавать хотя бы части под GPL, а они этого не делают.

Крупнейший конкурент Cisco на арене маршрутизаторов, Juniper Networks , использует Junos на большей части своего оборудования. Он основан на FreeBSD .

Что касается вашего маршрутизатора Belkin, F5D8235-4, он действительно основан на Linux . По этой ссылке вы попадете на страницу со ссылками на архивы tar, содержащие исходный код GPL, который использует каждый из их продуктов , как того требует GPL .Я заглянул внутрь тарбола F5D8235-4 и нашел внутри копию исходных текстов ядра Linux.

Чтобы ответить на этот вопрос для других маршрутизаторов, вы можете сделать то же, что и я: найти место для загрузки исходных текстов под GPL для маршрутизатора или найти копии лицензии GPL в руководствах по продуктам или в загружаемых материалах. GPL также требует, чтобы они сообщали о лицензии получателям продуктов, содержащих программное обеспечение под лицензией GPL. Тот факт, что у вас есть копия GPL, не означает, что у вас есть продукт на основе Linux, но это означает, что вы должны иметь возможность каким-то образом загрузить исходный код от компании и, таким образом, ответить на вопрос путем экзамена.

Другой способ - попробовать подключиться к устройству по telnet . Многие домашние шлюзовые маршрутизаторы на базе Linux будут отвечать на Telnet. Если это позволит вам войти, элементарное исследование может ответить на вопрос; например, команда uname -a .

Еще одна важная подсказка - обнаружение того, что он запускает BusyBox . BusyBox работает в других операционных системах, помимо Linux, но он очень часто используется во встроенных Linux, тогда как более минимальный стандартный набор инструментов BSD означает, что встроенные BSD, как правило, идут со стандартом, а не с еще более урезанными инструментами BusyBox.

1
23.01.2019, 13:31
2 ответа

Используйтеsed:

sed -i 's/LIST\=.*/LIST="element4 element5"/' config_file

Если вы хотите, чтобы LIST обновлялся только в том случае, если он не закомментирован, добавьте^(начало строки):

sed -i 's/^LIST\=.*/LIST="element4 element5"/' config_file
3
27.01.2020, 23:18

Тот же ответ, что и принятый, но готовый к использованию в скрипте . Если кому-то будет полезно:

#! /bin/bash
#  (GPL3+) Alberto Salvia Novella (es20490446e)


modifyVariableInFile () {
    variable="${1}"
    content="${2}"
    file="${3}"

    if [ ! -f "${file}" ]; then
        echo "modifyVariableInFile: file doesn't exist: ${file}"
        exit 1
    fi

    sed -i "s/^${variable}\=.*/${variable}=\"${content}\"/" "${file}"
}


modifyVariableInFile ${@}
1
27.01.2020, 23:18

Теги

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