как определить, какой диск является sda, а какой - sdb?

Что ж, я думаю, что нашел ответ на свой первый вопрос в предложениях, которые у меня были при написании заголовка для моего вопроса в Stack Exchange. Я думаю, что это работает. Знайте, просто изменив:

chck_rgx () { # Checks that the given name for a user/group fulfills the regex. The function's parameters are                                                                                                         
              #   * $1: kind of name to check: username, hostname, etc.
              #   * $2: variable whose value to check if meets the requirements.                         
  local rgx_hostname='^[a-z][a-zA-Z0-9_-]+$' ;                                                                                          
  local rgx_inputbox_hostname="The hostname you just submitted isn't a valid name. Try with another name."
  local rgx_username='^[a-z][a-z0-9_-]+$' ;
  local rgx_inputbox_username="The username you just submitted isn't a valid name. Try with another name." ;
  eval rgx_name="\$rgx_$1" ;                                                                                                            
  eval rgx_inputbox="\$rgx_inputbox_$1" ;                                                                                               
  eval name_ch="\$$2" ;                                                                                                                 
  while [[ ! $name_ch =~ $rgx_name ]] ; do                                                                                              
    dialog --backtitle "$backtitle_var" \       
           --title     "Wrong $1 submitted" --clear \                                                           
           --inputbox  "$rgx_inputbox" 0 0 2> name-ch ;                                                                              
    name_ch=$(cat name-ch) ;                                                                                                            
    rm name-ch ;                                                                                                                        
  done                                                                                                                                  
  declare -g -- "$2=$name_ch" ;
}

Изменение есть в

declare -g -- "$2=$name_ch"

В любом случае, я все еще хочу знать, есть ли способ получить вывод диалогового окна ввода непосредственно в переменной; нет в файле.

Спасибо.

3
18.04.2018, 21:11
1 ответ

Вы можете узнать марку и модель каждого физического блочного устройства с помощьюlsblk:

$ lsblk -do +VENDOR,MODEL,SERIAL
NAME MAJ:MIN RM   SIZE RO TYPE MOUNTPOINT VENDOR   MODEL            SERIAL
sda    8:0    0   1.8T  0 disk            ATA      WDC WD20EARS-00M WD-WCAZA571XXXX
sdf    8:80   0 465.1G  0 disk            WD       My Passport 070A WD-WXF1A30YXXXX
sr0   11:0    1  1024M  0 rom             HL-DT-ST DVDRAM GH22LS40  6FA3D3AFXXXX
sr1   11:1    1   668M  0 rom             WD       Virtual CD 070A  57584631413330593830XXXX
13
27.01.2020, 21:12

Теги

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