Как указать путь к исполняемому файлу для файла модуля systemd на nix?

xml2 < date_list | egrep "pubDate" | grep -Po "(?<=\=).*" \
| while read L
  do
    echo $L
  done

читает разбивает строки и не разбивает слова, если их не просят. :-)

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

Если вы имеете дело с большим количеством XML, вы действительно хотите освоить парсер SAX.

3
16.01.2019, 15:12
2 ответа

Вообще говоря, ${pkgs.nameOfPackage}является предпочтительным синтаксисом.

В вашем конкретном примере m mkdirявляется частью пакета coreutils; какой (каламбур означает ), вы можете определить с помощью команды readlink $(which mkdir). Итак, ваша строка должна читаться:

ExecStartPre=${pkgs.coreutils}/bin/mkdir BLAH BLAH BLAH

Хотя coreutils всегда устанавливается AFIK, приятным преимуществом синтаксиса ${pkgs.nameOfPackage}является то, что вам не нужно устанавливать пакет nameOfPackage; Никс сделает это за вас.

2
27.01.2020, 21:21

Во-первых, вам не нужны эти пробелы и двойные кавычки.

ExecStartPre=/run/current-system/sw/bin/mkdir -p %h/.config/example/pending

Во-вторых, пробовали ли вы эту команду в своей системе, как она написана? В твоей скорлупе:

mkdir -p ~/.config/example/pending

Наконец, %h относится к дому пользователя. Но, возможно, ваша система нацелена на другое место, так как команда mkdir находится не в том месте. echo ~, чтобы увидеть свой домашний каталог.

1
27.01.2020, 21:21

Теги

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