Ответы пользователя по тегу bash
  • Как извлечь подстроку из строки при помощи grep?

    qlkvg
    @qlkvg
    python backend developer
    Для коллекции

    echo "{"jsonrpc":"2.0","result":[{"groupid":"63","name":"1voda","internal":"0","flags":"0"}],"id":1}" | grep -oP "(?<=groupid:)[0-9]*"
    Ответ написан
    Комментировать
  • Как автоматически принять лицензию в Opera?

    qlkvg
    @qlkvg
    python backend developer
    Вы неправильно поняли, чего от вас хочет опера. Этот диалог не имеет отношения к лицензии - это предложение добавить репозитории оперы в ваш пакетный менеджер. Закономерный вопрос, почему команда
    echo "deb https://deb.opera.com/opera-stable/ stable non-free" | tee -a /etc/apt/sources.list.d/opera-stable.list

    не добавляет репозиторий? Если вы скачаете пакет opera-stable и распакуете его, то в папке DEBIAN увидите файл config. В нем есть строчка
    if grep -q '^\s*deb\s*http://deb.opera.com/' /etc/apt/sources.list && ! test -f /etc/apt/sources.list.d/opera.list

    Которая проверяет, не добавлен ли у вас случайно репозиторий оперы. Если не добавлен, то вылезает тот самый диалог. Проблема в том, что вы выполняете команду, которая добавляет файл opera-stable.list, в то время как проверка ищет файл opera.list, либо запись в общесистемном sources.list.
    Откуда вы взяли вашу команду непонятно. По ссылке, которую вы оставили, команды другие
    sudo add-apt-repository 'deb https://deb.opera.com/opera-stable/ stable non-free'
    wget -qO- https://deb.opera.com/archive.key | sudo apt-key add -
    sudo apt-get update
    sudo apt-get install opera-stable

    Они добавляют запись в sources.list и вроде как проверка должна проваливаться без вывода диалога. Но самое интересное еще впереди. Эти криворукие обезьяны проверяют репозиторий вот такой регуляркой'^\s*deb\s*http://deb.opera.com/'
    А в инструкции сказано добавить https://deb.opera.com/' . И проверка закономерно обламывается.
    Что можно сделать? Написать скрипт, который будет перед установкой скачивать пакет, распаковывать его, убирать оттуда КЕМ файл config, запаковывать обратно и ставить через dpkg.
    Ответ написан
    4 комментария
  • Как рещить проблему с удалением файла zip через shell script?

    qlkvg
    @qlkvg
    python backend developer
    sudo apt install dos2unix
    dos2unix <script_name>
    Ответ написан
    Комментировать
  • Что делает терминалка с моим скриптом?

    qlkvg
    @qlkvg
    python backend developer
    1. Ну в общем случае первый вариант должен выкидывать "run.sh: command not found". Под убунтой по крайней мере так. В баше бэкслеш используется как символ экранирования. Подвоха никакого нет - в никсах разделитель файлов и папок - косая черта.
    2. Чтобы файл был исполняемым - обязательно. Без модификатора "x" у него не будет прав на исполнение. Но в то же время его все равно можно будет выполнить как "bash ./run.sh"
    Ответ написан
    Комментировать