Используя 'sed' в Android без 'g' модификатора?

[119037]Нет, это не предотвратит скрипт от сбоя. Если в процессе [119557]tar[119558] возникнут ошибки (например: разрешение отказано, такого файла или директории нет, ...), скрипт все равно аварийно завершает работу.

  • Это происходит из-за использования [119559]> /dev/null 2>&1[119560] перенаправит весь вывод команды (как [119561]stdout[119562], так и [119563]stderr[119564]) на [119565]/dev/null[119566], что означает, что на терминал не выводятся никакие выводы. По умолчанию:

  • По умолчанию:

    В скрипте используется [119567]> /dev/null[119568], что вызывает:enter image description here

    А затем [119569]2>&1[119570], что вызывает:

    2
    11.02.2015, 04:52
    2 ответа

    Я не рекомендую вам SSH-Add (что нужно открыть SSH-Agent) при входе в систему. Это связано с тем, что вы не можете управлять, когда секция SSH-Agent заканчивается, и может создать риск безопасности, когда вам не нужно использовать ключевые файлы в одном разделе входа в систему.

    Скорее, я рекомендую написать скрипт, который открывает SSH-Agent Section Sector Shell, со всеми добавленными файлами KeyFiles Auto, и их можно вызвать при использовании SSH. Если бы вы могли принять так, читать дальше.

    У вас будет два варианта:

    1. Удалите все паросы для ваших ключей, которые имеют слабую безопасность , если ваши ключевые файлы будут украдены. (Таким образом, не рекомендуется )

    2. Используйте ту же пароль для ваших ключей. Тогда, когда вы SSH-Add Keyfile1 KeyFile2 ... , вам нужно только один раз ввести пароль один раз, на раздел.

    В обоих случаях вы можете написать такой файл сценария «SSH_KEYS_SECTION.SH», как показано ниже:

    #!/bin/bash
    # This script run a ssh-agent on a sub-shell and automatically ssh-add all keyfiles at once.
    # This agent ends when you type `exit` to close the sub-shell.
    exec ssh-agent bash -c "ssh-add /path/to/keyfile1 /path/to/keyfile2 ...; exec bash"
    

    Примечания:

    • Команда для изменения или удаления парольной фразы: SSH-Keygen-P-P-FF SSHFILE
    • В рамках SUB-Shell вы можете даже в виду больше клемм, которые разделяют одни и те же разблокированные ключи, используя, возможно, команду, как / Путь / к / yourTerminal, & (зависит от ОС)
    --121----670-

    Для ограничения замены до части файла вплоть до и включая первый экземпляр сопоставления, вы можете добавить команду замены с диапазоном формы 1, \ # Pattern # IE

    busybox sed '1,\#</verse-sub-section># s#</verse-sub-section>#</section>#' file
    

    Обратите внимание на использование выхода на обратную косание перед альтернативным разделителем \ # , за исключением случаев, когда он вводится командой S .

    Обратите внимание, что это не будет желаемого поведения, если в первой строке происходит матч; GNU SED поддерживает диапазон формы 0, \ # Шаблон # для обработки этой ситуации, но BusyBox SED - по крайней мере, версия, которую я могу проверить, Busybox v1.22.1 (Ubuntu 1: 1.22.0-8ubuntu1) - не кажется.

    1
    27.01.2020, 22:13

    Ваш вопрос неоднозначен. Если вы хотите найти очень первый экземпляр из во всем файле и замените его , Затем посмотрите другой ответ (ы). Моя интерпретация заключается в том, что, учитывая вход

    1    <section>Genesis</verse-sub-section>
    2    <verse-sub-section>In the beginning, God ...</verse-sub-section>
    3    <section>Psalm of David</verse-sub-section>
    4    <verse-sub-section>David Weeps</verse-sub-section>
    

    , вы хотите заменить с на линиях 1 и 3. Если это твой вопрос, ответ

    sed -i 's#\(<section>.*\)</verse-sub-section>#\1</section>#' file
    

    положить <раздел> в поле / старый / / Команда гарантирует, что будут обработаны только линии, содержащие <Раздел> . \ (... \) разграничивает часть линии: часть, начиная с <Раздел> и идти до (но не включая) . И \ 1 \ 1 в поле новых поля приводит к тому, что идентифицированная подстрока соответствующей строки Чтобы быть вставленным в файл - то есть, осталось нетронутым.

    По крайней мере, так работает в нормальных версиях * NIX. Android не должен быть другим, но я не могу гарантировать, что он будет работать в Bitebox.

    1
    27.01.2020, 22:13

    Теги

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