процесс pkill, содержащий специальные символы

Как другие сказали, это не будет работать потому что cd оболочка встроенная команда, не внешняя программа, таким образом, она не имеет никакого стандарта, ввела Вас, может передать что-либо по каналу в.

Но, даже если бы это работало, то это не сделало бы то, чего Вы желаете: канал порождает новый процесс и перенаправляет стандартный вывод первой команды в стандартный вход второго, таким образом только новый процесс изменил бы свой текущий рабочий каталог; это не могло влиять на первый процесс всегда.

0
28.07.2013, 13:01
1 ответ

Выборки от pkill руководство:

SYNOPSIS

    pkill [options] pattern

OPERANDS

    pattern
        Specifies an Extended Regular Expression for matching against the
        process names or command lines.

Таким образом, pkill интерпретирует '+' в Вашем аргументе как специальный символ образца. Используйте обратную косую черту для выхода из него. Если Вы используете doublequotes для заключения в кавычки или не заключаете в кавычки вообще, обратные косые черты Escape, таким образом, Bash не интерпретирует их. Как это:

pkill -SIGTERM -f "auth\\+live\\+ec575698789349860987088t897906769878968970"
2
28.01.2020, 02:37
  • 1
    является там некоторым путем в ударе, чтобы сделать выход, поскольку это будет содержаться в больший сценарий –   28.07.2013, 20:02
  • 2
    @mcgrailm, я не уверен, какова проблема в выполнении выхода в сценарии. Вы могли разработать и/или отправить код в дополнении к Вашему вопросу, и я добавлю ответ на свой ответ? –  spbnick 29.07.2013, 11:50
  • 3
    apt-get -t stable install php5-memcached Не работал: php5-memcached : Depends: libmemcached11 but it is not installable E: Unmet dependencies. Try 'apt-get -f install' with no packages (or specify a solution). ---------121 спасибо--------138639----, но это не работало на меня. Я отодвинул папку, впоследствии перезапустил gedit, но тем не менее темой является нестандартная, а также используемые плагины являются теми, я имел в прошлый раз, Если Вы хотите выйти из шаблона автоматически, можно сделать что-то вроде этого: escaped_pattern=$(echo -n "$pattern" | sed -e 's/[^a-zA-Z0-9_-]/\\&/g'). Я использовал бы обратные галочки вместо $() но это резервируется для форматирования stackoverflow. Затем можно вызвать pkill с ним: pkill -SIGTERM -f "$escaped_pattern" –  spbnick 29.07.2013, 12:13
  • 4
    @mcgrailm, Если Вы хотите выйти из шаблона автоматически, можно сделать что-то вроде этого: escaped_pattern=$(echo -n "$pattern" | sed -e 's/[^a-zA-Z0-9_-]/\\&/g'). Я использовал бы обратные галочки вместо $() но это резервируется для форматирования stackoverflow. Затем можно вызвать pkill с ним: pkill -SIGTERM -f "$escaped_pattern" ---------121 спасибо--------279250----:) Я закончил тем, что использовал fn= $ {fn//+ / \\+} для использования замены простой строки, которая прекрасна, потому что у них никогда не будет никаких других символов :) –   29.07.2013, 15:45

Теги

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