[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: confronto stringhe



On Wed, Jun 02, 2021 at 12:28:21PM +0200, Filippo Dal Bosco - wrote:
> Ho uno script
> ----------------------------------------
> 
> #!/bin/bash
> 
> FD=$(fdisk -l | egrep /dev/sda7) 
> EC="/dev/sda7   934914048 1000214527  65300480  31,1G Linux swap"
> 
> echo "---Le due stringhe---"
> echo "---stringa da fdisk -l ----"
> echo $FD
> echo "--- stringa come deve essere per /dev/sda7 ---"
> echo $EC
> echo ----------------------
> 
> #
> if [ "$FD" = "$EC" ]; then
> ....
> ...
> else
> ....
> ...
> fi
> ---------------------------------------
> che non funziona.

  cat prova.sh

#!/usr/bin/env bash


fd=$(/sbin/fdisk -l | grep sda7)
ec="/dev/sda7  197736448 206133247   8396800    4G Linux swap"

echo "---Le due stringhe---"
echo "---stringa da fdisk -l ----"
echo "$fd"
echo "--- stringa come deve essere per /dev/sda7 ---"
echo "$ec"
echo ----------------------

if [ "$fd" = "$ec" ]; then
    echo 'so uguali'
else
    echo 'so diverse'
fi

  ./prova.sh

---Le due stringhe---
---stringa da fdisk -l ----
/dev/sda7  197736448 206133247   8396800    4G Linux swap
--- stringa come deve essere per /dev/sda7 ---
/dev/sda7  197736448 206133247   8396800    4G Linux swap
----------------------
so uguali


Liberati dal male, dal pudore, non usare puntini di sospensione e
altre forme di auto censura. Invia lo scritto per intero.



> Quando parte mi fa vedere le due stringhe come uguali ma poi esegue
> "else"
> 
> Suppongo che sia dovuto al fatto che fdisk ( o egrep) produce una
> stringa con caratteri non visibili . Esiste un "trim" per eliminarli
> e far diventare la stringa $FD di fdisk uguale a $EC ? 

Partendo dal fatto che a me funziona sarei tentato di escludere questo
scenario, anche se passare per fdisk lo trovo un approccio poco
elegante.


È un esercizio?

> grazie
> 
> 
> -- 
> Filippo

-- 

Felipe Salvador


Reply to: