Разобрать пары значений табулированного ключа -для установки переменных оболочки

Теперь проще (? )— использовать команду с опцией --verbose, но без указания опции --key-slot:

# cryptsetup --verbose open --test-passphrase /dev/sda2
Enter passphrase for /dev/sda2: 
Key slot 4 unlocked.

Он автоматически проверит для вас правильный слот, не заставляя вас искать подходящий слот:)

-1
02.07.2020, 17:57
3 ответа
      #!/bin/bash
      #first you take the input of the file, in two separate strings
      IFS=$'\n'
      {
      read line1
      read line2
      } < yourfile
   
      #then you create arrays out of the strings, by modifying IFS to        
      IFS=$'\t'
      a=($(echo "$line1"))
      b=($(echo "$line2"))

      if [[ ${#a[@]} -eq ${#b[@]} ]] #if you want no var to be empty
      then
         num=0
         while [[ -n "${a[$num]}" ]]
         do
              declare -g "$(echo ${a[$num]})"="$(echo ${b[$num]})"
              ((num++))
         done
      fi

теперь вы можете вызывать свои переменные по имени или косвенно как ${!a[0]} и т. д.

1
18.03.2021, 23:22

Создайте назначения переменных с помощью awkи источник вывода, используя подстановку процесса.

. <(awk -F'\t' '{ for(i=1;i<=NF;i++) if (FNR==1) a[i]=$i; else print a[i] "=" $i }' file)

То же самое с GNUdatamash:

. <(datamash --output-delimiter== transpose <file)
1
18.03.2021, 23:22

Использование :

cols=8
declare $(awk -vcols=$cols -vRS= '{while (i++<cols) print $i"="$(i+cols)}' file)

echo "$san7"
6.25%
0
18.03.2021, 23:22

Теги

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