Использование команды watch с аргументом, содержащим кавычки

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

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

Я пробовал:

  • Команда watch с сохраненными цветами
  •  watch "ps -ef | awk -F' ' '{print $2}'" 

    а также

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

    Но ни одна из них не работает правильно.

  • Команда watch с сохраненными цветами
  • 3 Solutions collect form web for “Использование команды watch с аргументом, содержащим кавычки”

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

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

    В противном случае это интерпретируется оболочкой, которая приведет к пустой строке ( "" ) – то есть awk будет печатать всю строку.

    Вы всегда можете поместить свою команду в сценарий оболочки, а затем «посмотреть» сценарий.

    Я просто встретил подобную проблему. Прочитав страницу Man Watch , я нашел решение, которое могло бы работать, чтобы объединить строки в bash. Последняя команда выглядела странно, например:

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

    или

     watch 'ps -ef | awk -F'"' ' '"'{print $2}'"'" 
    Давайте будем гением компьютера.