Окружить команду кавычками
watch -n 1 'tail -n 200 log/site_dev.log | fgrep Doctrine'
Я хотел бы запустить эту команду:
watch -n 1 tail -n 200 log/site_dev.log | grep Doctrine
Но это не работает, потому что «я думаю», что grep пытается запустить на часах вместо хвоста ...
Есть ли способ сделать что-то вроде
watch -n 1 (tail -n 200 log/site_dev.log | grep Doctrine)
Большое спасибо!
Окружить команду кавычками
watch -n 1 'tail -n 200 log/site_dev.log | fgrep Doctrine'
Я могу ошибаться, но разве это не приведет к тому же самому (просмотр соответствующих строк журнала по мере их добавления) проще?
tail -f -n 200 log/site_dev.log | grep Doctrine
Вы можете заключить команду в кавычки:
watch -n 1 'tail -n 200 log/site_dev.log | fgrep Doctrine'
Если в команде есть кавычки, вы можете использовать кавычки другого типа с соответствующим экранированием:
watch -n 1 $'tail -n 200 log/site_dev.log | fgrep \'Doctrine.*\''
Если вы пытаетесь сделать что-то действительно умное, поместите команду или команды в скрипт и используйте это вместе с watch:
cat <<EOF >/tmp/watch-command tail -n 200 $(pwd)/log/site_dev.log | fgrep Doctrine EOF chmod +x /tmp/watch-command watch /tmp/watch-command
Обязательно учитывайте относительные пути, если это необходимо.