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

10885
jonderry

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

ps -ef | awk -F' ' '' 

Я пробовал:

watch "ps -ef | awk -F' ' ''" 

а также

watch 'ps -ef | awk -F\' \' \'\'' 

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

10

3 ответа на вопрос

14
bmk

Я полагаю, вы должны избежать $знака:

watch "ps -ef | awk -F' ' ''" 

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

5
Resorath

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

1
Adam_Yyx

I just met a similar problem. After reading the watch Man Page, I found a solution that could work, which is to concatenate strings in bash. The final command looked weird, such as:

watch "ps -ef | awk -F' ' '"''"'" 

or

watch 'ps -ef | awk -F'"' ' '"''"'" 

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