Выполните итерацию по диктам и отфильтровайте ненужные ключи.
---
- hosts: all
gather_facts: no
vars:
site1:
- name: myName
value1: something1
value2: apple
value3: 14
valuen: "a submarine"
tasks:
- debug:
msg: |
{%- for item in site1 %}
{{item['name']}}
{%- for key in item.keys() | sort %}
{%- if key.startswith('value') %}
{{item[key]}}
{%- endif %}
{%- endfor %}
{%- endfor %}.
Результат:
$ ansible-playbook -i localhost, playbook.yml
PLAY [all] ********************************************************************
TASK: [debug ] ****************************************************************
ok: [localhost] => {
"msg": "myName something1 apple 14 a submarine."
}
PLAY RECAP ********************************************************************
localhost : ok=1 changed=0 unreachable=0 failed=0
-121--289782-
Собственный менеджер пакетов Perl - самый простой способ установки библиотек Perl. К сожалению, он не интегрирован в дистрибутив, поэтому вы не получите преимуществ управления пакетами дистрибутива, таких как стабильные выпуски, обновления безопасности или отслеживание зависимостей для компонентов, отличных от Perl. Поэтому лучше использовать это только для модулей, которые отсутствуют в вашем дистрибутиве.
Менеджер пакетов Perl называется CPAN
, после веб-сайта с тем же именем . Для взаимодействия с CPAN выполните команду
perl -MCPAN -eshell
и следуйте инструкциям по установке. Для использования в системе выполните установку по пути /usr/local/lib/site _ perl
или независимо от перечислять системы для
perl -e '$\=$,="\n"; print grep m!^/usr/local!, @INC'
Для установки модуля используйте команду install
для каждого из отсутствующих модулей. Это также устанавливает зависимости. Например,
cpan[4]> install YAML::XS
Если модули установлены через дистрибутив (например, DBI
через libdbi-perl
), но программа сообщает, что их «не удалось загрузить», это будет ошибкой в программе. Может, ему нужна более поздняя версия, или, может быть, он портит путь поиска модуля.
Обратите внимание, что приведенные инструкции являются довольно запутанными, и вызовет неполадки в строке, поскольку они предписывают вам изменить файлы, которые поддерживаются диспетчером пакетов. Никогда не делайте этого: ваши модификации будут потеряны при модернизации. Вместо этого, если вам нужно исправить некоторые системные файлы, поместите исправленную копию куда-нибудь и проинструктируйте программу загрузить модули из пользовательского каталога, например,
mkdir -p /usr/local/lib/lms/perl/Slim
cp /usr/share/perl5/Slim/bootstrap.pm /usr/local/lib/lms/perl/Slim
patch /usr/local/lib/lms/perl/Slim/bootstrap.pm lms-rpi-bootstrap.patch
и отредактируйте сценарий запуска службы logitechmediaserver
, чтобы установить для переменной среды PERL5LIB
значение /usr/local/lib/lms/perl
.
-121--289696-
См. Справочное руководство Bash :
$ {parameter # word}
$ {parameter # # word}
Слово развернуто так же, как и при расширении имени файла (см. Расширение имени файла). Если образец соответствует началу расширенного значения параметра, то результатом расширения является расширенное значение параметра с удаленным самым коротким образцом соответствия (случай «#») или самым длинным образцом соответствия (случай «# #»)....
$ {parameter% word}
$ {parameter%% word}
Слово развернуто для создания образца так же, как при расширении имени файла. Если образец соответствует заключительной части расширенного значения параметра, то результатом расширения является значение параметра с удаленным самым коротким образцом соответствия (случай «%») или самым длинным образцом соответствия (случай «%%»)....
Это ваш эмулятор терминала, который «съедает» ваши ключи, потому что для них нет известного представления/экранирования, с помощью которого они могли бы быть отправлены в программу, работающую в терминале.
Shift -Вкладка обычно отображается на "\e[Z" (kcbt/kB/back -клавиша табуляции, см. terminfo (5 )), и это то, что tmux видит для обоих Shift -Tab и Control -Shift -Tab; но это все равно не имеет значения, потому что tmux (видимо )не умеет привязывать произвольные последовательности клавиш к командам, а только «стандартные» клавиши, о которых он знает.
Имея это в виду, вы можете настроить urxvt для переназначения Control -Tab и Control -Shift -Tab на «Control -bn» и «Control -bp» (по умолчанию. клавиши для следующего/предыдущего окна в tmux)
$ cat | xrdb -override
URxvt.keysym.ISO_Left_Tab: string:\002n
URxvt.keysym.Control-ISO_Left_Tab: string:\002p
! disable the built-in control-shift
URxvt.iso14755:false
^D
"\002" равно ^B или Control -b; вам следует изменить его, если вы используете другой ключевой префикс в tmux (, например, "\001" для ^A ).
Также обратите внимание, что на вашем X-сервере Shift -Tab может не быть сопоставлен с ISO _Left _Tab; используйте xev (1 ), чтобы увидеть, какие ключи он на самом деле отправляет.
Если это сработает,вы можете добавить эти строки в~/.Xresources
--и убедиться, что файл загружается из сценариев X-сеанса (, что может быть недоступно для современных рабочих столов! ).