Как я могу сделать эквивалент этой функции bash в tcsh?

У меня есть функция в bash, чтобы убить все процессы, которые содержат одно и то же имя:

killn () { pkill -9 -f $1; }

Я понимаю, что tcsh не поддерживает функции.

Как я могу перевести эту функцию в псевдоним, который будет работать в tcsh?

2
задан 3 August 2017 в 09:41

3 ответа

Во-первых, предупреждение всем, кто наткнулся на этот пост: флаг -f на pkill приведет к тому, что он будет соответствовать шаблону, который вы дадите ему, с полной командной строкой каждого процесса, а не только именем процесса. Это соответствует большему количеству процессов, поэтому вы можете убить больше, чем планируете. Будьте осторожны!

Поскольку шаблон, который вы передаете pkill, появляется в конце команды, вам фактически не нужна явная обработка аргументов, так что это можно сделать с помощью простого типа tcsh alias:

alias killn pkill -9 -f

С указанным псевдонимом, если вы хотите отправить SIGKILL в процессы, чьи полные командные строки содержат совпадение с Во-первых, предупреждение всем, кто наткнулся на этот пост : флаг -f до pkill приведет к тому, что он будет соответствовать шаблону, который вы даете ему, с полной командной строкой каждого процесса, а не только именем процесса. Это соответствует большему количеству процессов, поэтому вы можете убить больше, чем планируете. Будьте внимательны! , вы используете псевдоним следующим образом:

killn pattern

Это заменяет pkill -9 -f для killn, заставляя вашу желаемую команду запускаться:

pkill -9 -f pattern

Примечание для случайных читателей: это псевдоним tcsh, который не имеет того же синтаксиса, что и псевдоним bash.

2
ответ дан 22 May 2018 в 20:07

Во-первых, предупреждение всем, кто наткнулся на этот пост: флаг -f на pkill приведет к тому, что он будет соответствовать шаблону, который вы дадите ему, с полной командной строкой каждого процесса, а не только именем процесса. Это соответствует большему количеству процессов, поэтому вы можете убить больше, чем планируете. Будьте осторожны!

Поскольку шаблон, который вы передаете pkill, появляется в конце команды, вам фактически не нужна явная обработка аргументов, так что это можно сделать с помощью простого типа tcsh alias:

alias killn pkill -9 -f

С указанным псевдонимом, если вы хотите отправить SIGKILL в процессы, чьи полные командные строки содержат совпадение с Во-первых, предупреждение всем, кто наткнулся на этот пост : флаг -f до pkill приведет к тому, что он будет соответствовать шаблону, который вы даете ему, с полной командной строкой каждого процесса, а не только именем процесса. Это соответствует большему количеству процессов, поэтому вы можете убить больше, чем планируете. Будьте внимательны! , вы используете псевдоним следующим образом:

killn pattern

Это заменяет pkill -9 -f для killn, заставляя вашу желаемую команду запускаться:

pkill -9 -f pattern

Примечание для случайных читателей: это псевдоним tcsh, который не имеет того же синтаксиса, что и псевдоним bash.

2
ответ дан 18 July 2018 в 09:34

Во-первых, предупреждение всем, кто наткнулся на этот пост: флаг -f на pkill приведет к тому, что он будет соответствовать шаблону, который вы дадите ему, с полной командной строкой каждого процесса, а не только именем процесса. Это соответствует большему количеству процессов, поэтому вы можете убить больше, чем планируете. Будьте осторожны!

Поскольку шаблон, который вы передаете pkill, появляется в конце команды, вам фактически не нужна явная обработка аргументов, так что это можно сделать с помощью простого типа tcsh alias:

alias killn pkill -9 -f

С указанным псевдонимом, если вы хотите отправить SIGKILL в процессы, чьи полные командные строки содержат совпадение с Во-первых, предупреждение всем, кто наткнулся на этот пост : флаг -f до pkill приведет к тому, что он будет соответствовать шаблону, который вы даете ему, с полной командной строкой каждого процесса, а не только именем процесса. Это соответствует большему количеству процессов, поэтому вы можете убить больше, чем планируете. Будьте внимательны! , вы используете псевдоним следующим образом:

killn pattern

Это заменяет pkill -9 -f для killn, заставляя вашу желаемую команду запускаться:

pkill -9 -f pattern

Примечание для случайных читателей: это псевдоним tcsh, который не имеет того же синтаксиса, что и псевдоним bash.

2
ответ дан 24 July 2018 в 19:22

Другие вопросы по тегам:

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