Самый простой способ для выполнения этой задачи является:
pkill xxx
(., Которые вы найдете в Debian/Ubuntu мире в пакете procps
, если вы не установили) Вы, возможно, потребуется используйте pkill -f xxx
, в зависимости от того, является ли xxx частью имени процесса или аргумента, что часто бывает при выполнении сценария.
Однако, чтобы ответить на более общий вопрос о скорлупе цитировании, если вам нужно передать строку
kill $(ps aux | grep xxx | grep -v grep | awk '{print $2}')
в качестве аргумента, вам нужно использовать обратный слеш:
bash -c "kill \$(ps aux | grep xxx | grep -v grep | awk '{print \$2}')"
Или , вы можете вставить несколько строк:
bash -c 'kill $(ps aux | grep xxx | grep -v grep | awk '"'"'{print $2}'"'"')'
Лично я нахожу первый еще один r eadable, но YMMV.
Вы можете только обратный слэш избежать несколько символов внутри двойных кавычках строки: $
, "
, \
, новой строки и кавычкой; и внутри одноколейной обратной косой черты просто обратная косая черта. Тем не менее, этого достаточно, чтобы вы могли ввести что угодно.