awk печатает if и else case

На многих ноутбуках есть кнопка переключения функций, позволяющая переключаться между внутренним и внешним мониторами, на моем ноутбуке это F5:

enter image description here

Это позволяет отключить внутренний дисплей, если он подключен к внешнему дисплею.

0
20.10.2021, 19:47
1 ответ

awkзапускает свой код как цикл для каждой входной строки. Вы получите либо 1, либо 0для каждой не -пустой строки. Вы можете

Если вы хотите определить, есть ли на устройстве смонтированные разделы, рассмотрите возможность использования этого подхода:

device=/dev/mmcblk0
if [ -n "$(lsblk -nl -o MOUNTPOINT "$device")" ]
then
    echo "Partitions are mounted on $device"
else
    echo "Device $device is currently unused"
fi

Если вы действительно хотите сохранить awkподход, возможно, это то, что вам нужно. (Я не совсем понимаю, почему вы хотели проигнорировать первую строку. В моих тестах казалось, что это относится ко всему устройству, и могут быть ситуации, когда само устройство содержит файловую систему, поэтому я удалил тест пропуска.)

device=/dev/sdd
lsblk -nl "$device" -o MOUNTPOINT | awk 'NF { found=1 } END { print found+0 }'
2
20.10.2021, 22:05

Теги

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