Re: Comparing strings

From: ELCV (clsamc...)

Thank you for the replies. I did go with the case statement and functions.

On Tuesday, July 13, 2021 at 4:29:33 PM UTC-4, Grant Taylor wrote:
> On 7/13/21 11:46 AM, ELCV wrote:
> > Hello
>
> Hi,
> > I can't get this right. What I have is a script to backup VM
> > guests. The command is called with an argument, for example:
> >
> > /usr/local/bin/vm-backup.sh FOO
> >
> > Some of the VMs have two disks and I want to back them both up. Two of
> > the VMs have vert large data partitions that are backed up separately
> > and I want to exclude them.
> Okay. That sounds like some VMs can use a default, some need slightly
> different, and still others need something special.
> > If I do this:
> >
> > if [ "$1" != "FOO" ];
> > then
> > echo "I can backup the 2nd volume";
> > else
> > exit;
> > fi
> >
> > It works. But if I add an "or" condition as follows:
> >
> > if [ "$1" != "FOO" ] || [ "$1" != "BAR" ] ;
> > then
> > echo "I can backup the 2nd volume";
> > else
> > exit;
> > fi
> >
> > It fails.
> ORed negative logic is ... tricksy.
> > I have tried this a number of different ways and I can't get it. Any
> > guidance is appreciated. Thanks.
> I would be tempted to try a case statement:
>
> case ${1} in
> FOO)
> # FOO's specific backup.
> BAR|BOB)
> # specific backup for BAR and BOB.
> *)
> # default backup for all other systems.
> esac
>
> I also find that such a case statement is a lot easier to maintain long
> term as systems are added / changed / removed.
>
> Depending on how the backups work, you might consider breaking out the
> actual backup actions to their discrete steps and call them as a
> function. E.g. FOO would call functions 1 and 2, while BAR & BOB call
> functions 2 and 3, and then everyone else would only call functions 1
> and 3. Use the case as a method to choosoe which pieces to run and then
> call the necessary common pieces.
>
>
>
> --
> Grant. . . .
> unix || die

Share |
Comparing strings... by ELCV on Jul 13th 2021, 17:46
Re: Comparing strings... by Grant Taylor on Jul 13th 2021, 20:29