Mi dispiace dover ricorrere ancora al vostro aiuto, ma sono di nuovo bloccato con un mio script.
Ad un certo punto lo script esegue il comando lsblk per estrarre gli UUID di 3 partizioni che contengono nel nome "Etichetta di sistema" le stringhe bkp_giornaliero1, bkp_giornaliero2, bkp_giornaliero3.
Per riconoscerle e caricare le tre righe che le contengono, ho preparato le seguenti istruzioni:
listaUUID=$(lsblk -o NAME,MOUNTPOINT,LABEL,PATH,UUID)
declare -a TbOutput
IFS=$'\n'
TbOutput=(`lsblk -o NAME,MOUNTPOINT,LABEL,PATH,UUID | grep -i "bkp_giornaliero" | tr IFS ' '`)
TotEle=${#TbOutput[*]}
echo "righe lette= ${#TbOutput[*]}"
for ((ii=0;ii\<${TotEle};++ii));do
echo -n "TbOutput[${ii}]="; echo ${TbOutput[ii]}
echo "-------"
echo "Lista UUID = ${listaUUID}"
Ecco che cosa viene fuori:
righe lette= 3
TbOutput[0]=├─sdb1 bkp_giornaliero1 /dev/sdb1 381fb2cb-08ba-4f46-978b-bae65df24c90
-------
Lista UUID = NAME MOUNTPOINT LABEL PATH UUID
loop0 /snap/bare/5 /dev/loop0
loop1 /snap/chromium/2686 /dev/loop1
loop2 /snap/chromium/2695 /dev/loop2
loop3 /snap/core/16202 /dev/loop3
loop4 /snap/core18/2790 /dev/loop4
loop5 /snap/core18/2796 /dev/loop5
loop6 /snap/core20/2015 /dev/loop6
loop7 /snap/core22/864 /dev/loop7
loop8 /snap/cups/980 /dev/loop8
loop9 /snap/curl/1754 /dev/loop9
loop10 /snap/firefox/3290 /dev/loop10
loop11 /snap/firefox/3358 /dev/loop11
loop12 /snap/gimp/405 /dev/loop12
loop13 /snap/gimp/393 /dev/loop13
loop14 /snap/gnome-42-2204/141 /dev/loop14
loop15 /snap/gnome-3-38-2004/143 /dev/loop15
loop16 /snap/gtk2-common-themes/13 /dev/loop16
loop17 /snap/gtk-common-themes/1506 /dev/loop17
loop18 /snap/gtk-common-themes/1535 /dev/loop18
loop19 /snap/snap-store/467 /dev/loop19
loop20 /snap/snap-store/959 /dev/loop20
loop21 /snap/snapd/20092 /dev/loop21
loop22 /snap/snapd/20290 /dev/loop22
loop23 /snap/snapd-desktop-integration/83 /dev/loop23
loop24 /snap/vlc/3721 /dev/loop24
sda /dev/sda
├─sda1 /boot/efi /dev/sda1 4637-4332
├─sda2 / /dev/sda2 a34c6b2e-1316-436a-ac11-efbd946196be
├─sda3 /dev/sda3 efa629f6-34dc-4b86-9eb8-1125af45e53e
├─sda4 /dev/sda4 e83830b8-b36b-4fb2-b203-8d5e983713b0
├─sda5 /dev/sda5 72d035fb-482f-458d-a6b6-1576c2efcd50
├─sda6 /dev/sda6 81e5c238-4eb9-4a88-bf24-6f5304bab88d
└─sda7 /dev/sda7 3f45de5a-3c59-4efb-bd4d-4015543d2944
sdb /dev/sdb
├─sdb1 bkp_giornaliero1 /dev/sdb1 381fb2cb-08ba-4f46-978b-bae65df24c90
├─sdb2 bkp_giornaliero2 /dev/sdb2 aa228263-d6d5-49c5-959a-ac0890454db2
├─sdb3 /media/petrus/bkp_giornaliero3 bkp_giornaliero3 /dev/sdb3 485fda6b-a70c-4f2b-bc3b-97f29fddee43
├─sdb4 /dev/sdb4
├─sdb5 bkpUbuntu /dev/sdb5 0cb8ca1f-c6ff-45ad-8075-c087e51e019f
└─sdb6 bkpLinuxMint /dev/sdb6 9db2ace3-959f-4471-8fb3-38d697f78848
sdc /dev/sdc
└─sdc1 /media/dirdati archivio dati /dev/sdc1 80cb4e0e-2ae4-4820-a77c-8709f1078cb7
Ho riportato anche l'output prodotto dal comando lsblk, per completezza di informazioni.
Sicuramente sbaglio od ometto qualcosa, per cui l'array si forma con una sola riga, nonostante che il totale degli elementi caricati, citato con l'istruzione echo, sia 3. Purtroppo non riesco a capire l'errore commesso.
lo script che hai messo nel post conteneva un paio di errori:
- il ciclo for non veniva chiuso con "done"
- nella condizione del for c'era un backslash
io ho sostituito la stringa di ricerca "bkp_giornaliero" con "SWAP" e da me ora funziona
vedi se è a posto anche per te
listaUUID=$(lsblk -o NAME,MOUNTPOINT,LABEL,PATH,UUID)
declare -a TbOutput
IFS=$'\n'
TbOutput=(`lsblk -o NAME,MOUNTPOINT,LABEL,PATH,UUID | grep -i "SWAP" | tr IFS ' '`)
TotEle=${#TbOutput[*]}
echo "righe lette= ${#TbOutput[*]}"
for ((ii=0;ii<${TotEle};ii++));do
echo -n "TbOutput[${ii}]="; echo ${TbOutput[ii]}
done
echo "-------"
echo "Lista UUID = ${listaUUID}"
risultato
righe lette= 1
TbOutput[0]=├─nvme0n1p3 [SWAP] /dev/nvme0n1p3 973d8e24-001c-4c85-ba53-d3f9abee9200
-------
Lista UUID = NAME MOUNTPOINT LABEL PATH UUID
sda /dev/sda
nvme0n1 /dev/nvme0n1
├─nvme0n1p1 /boot/efi /dev/nvme0n1p1 F5B2-6CA9
├─nvme0n1p2 / /dev/nvme0n1p2 91f3013c-0b53-46a6-93a6-04bd262d9b4e
├─nvme0n1p3 [SWAP] /dev/nvme0n1p3 973d8e24-001c-4c85-ba53-d3f9abee9200
├─nvme0n1p4 /dev/nvme0n1p4 0556b984-afb7-4f92-8398-9a59e37ecde4
└─nvme0n1p5 /media/dati /dev/nvme0n1p5 614ee29c-5a9d-457d-bb12-7c442f8d2048
Edit:
per quanto riguarda lsblk, prova anche questi parametri
lsblk -lo NAME,MOUNTPOINT,LABEL,PATH,UUID
lsblk -Po NAME,MOUNTPOINT,LABEL,PATH,UUID
il primo (-l) fa una lista più pulita senza caratteri strani (tipici dell'albero)
il primo (-P) fa una lista ma con formato "chiave"="valore"
uno dei 2 potrebbe esserti utile