Використання команди watch з аргументом, що містить лапки


15

Я намагаюсь дотримуватися правильності роботи з командами, які містять лапки, і сторінка людини дивиться не дуже детально про те, як працюють цитати. Щоб навести конкретний приклад, як можна запустити таку команду всередині годинника:

ps -ef | awk -F' ' '{print $2}'

Я спробував:

watch "ps -ef | awk -F' ' '{print $2}'"

і

watch 'ps -ef | awk -F\' \' \'{print $2}\''

але жодне з цих не працює правильно.

Відповіді:


18

Я думаю, вам доведеться уникати $знаку:

watch "ps -ef | awk -F' ' '{print \$2}'"

інакше вона буде інтерпретована оболонкою, що призведе до порожнього рядка ( "") - тобто awkнадрукує весь рядок.


7

Ви завжди можете помістити свою команду в сценарій оболонки, а потім "переглянути" сценарій.


2

Я просто зіткнувся з подібною проблемою. Прочитавши годинник "Сторінка" , я знайшов рішення, яке могло б працювати, а саме об'єднати рядки в баш. Заключна команда виглядала дивно, як-от:

watch "ps -ef | awk -F' ' '"'{print $2}'"'"

або

watch 'ps -ef | awk -F'"' ' '"'{print $2}'"'"
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.