Если вы хотите, чтобы ctrl + c остановил цикл, но не завершил скрипт, вы можете поместить || break
после любой выполняемой команды. Пока программа, которую вы запускаете, завершается нажатием ctrl + c, это отлично работает.
#!/bin/bash
while :
do
# ctrl+c terminates sl, but not the shell script
sl -e || break
done
Если вы находитесь во вложенном цикле, вы можете использовать «break 2», чтобы выйти из двух уровней и т. Д.
DEVLINKS
— уникальные имена для данного устройства. В данном случае это запоминающее устройство mmcblk0. 2 DEVLINKS, которые возвращает эта команда, можно использовать, когда вы хотите обратиться к этому устройству хранения, чтобы запросить его или перенастроить.
Обычно вы видите, что устройства имеют несколько имен, в этом случае SD-карта идентифицирует себя как (по -id )mmc -008G30 _0xf281d20d. Путь by -обычно показывает, где устройство сопоставляется с шинами вашей системы (, например USB, PCI и т. д. ).
Я полагаю, что названия основаны на наборе микросхем материнской платы системы + самих устройствах.
Например, в моей системе, мое /dev/sda
устройство = /dev/disk/by-path/pci-0000:00:01.1-ata-1.0
, числа — это «координаты» того, где находится это устройство на шине PCI (pci -0000 :00 :01.1 )и ata-1.0
соответствуют «драйверам» Linux, которые используются для управления устройством.
Вот еще один для устройства /dev/ttyUSB0
-/ dev/serial/by-path/pci-0000:00:1d.1-usb-0:2:1.0-port0
. На этом показана шина PCI, но драйвер USB является «драйвером» для этого устройства.