Одна из причин сбоя вашего кода заключается в том, что вы используете одинарные кавычки '...'
вместо двойных "..."
в выражении grep
, которое окружает переменную.
Используйте это вместо этого
srvc_location=$(ps -ef| grep "${sandbox}.*pset" | head -1 | awk '{print $9}')
echo "SERVICE LOC : $srvc_location"
На самом деле, редко есть необходимость объединять head
и awk
подобным образом, поскольку awk
может сделать это сам:
srvc_location=$(ps -ef| grep "$sandbox.*pset" | awk '{print $9; exit}')
или даже это, что менее понятно, но тоже объединяет grep
:
srvc_location=$(ps -ef| awk -v sb="$sandbox" 'BEGIN { re = sb ".*pset" } $0 ~ re { print $9; exit}')
Здесь мы использовали несколько возможностей awk
. Мы определяем переменную awk
под названием sb
, которая принимает значение переменной оболочки $sandbox
. Блок BEGIN
определяет переменную awk
, которая содержит шаблон, который нам нужно найти, а остальная часть скрипта сопоставляет регулярное выражение в переменной awk
re
и печатает нужное поле, выходя сразу после этого.
Incluso el puerto HDMI se usa como salida de video, a veces, sin sonido. Edite /boot/config.txt y elimine #en la línea #hdmi _drive=2 Luego grabe el archivo y pruebe. No funciona si se usa en monitor usando un adaptador DVI/HDMI. Filo