Hi forum,
is there a shorter way of writing this expression:
A=aa
if $A == aa ]] || $A == bb ]]
then
echo hello
fi
I am looking for something like this one:
if $A == {aa,bb} ]]
then
echo hello
fi
Thanks a lot in advance.
Hi forum,
is there a shorter way of writing this expression:
A=aa
if $A == aa ]] || $A == bb ]]
then
echo hello
fi
I am looking for something like this one:
if $A == {aa,bb} ]]
then
echo hello
fi
Thanks a lot in advance.
Far from all knowing but not that I can see BashFAQ/017 - Greg’s Wiki
But I guess with some different thinking it can be done using an array var.
Might want to hang on for the real gurus input but that is the way I see it.
Then of course you also have case…
case $testing in
aa)
doing
;;
esac
Which does seem to take ]
http://mywiki.wooledge.org/BashFAQ/066
case "$A" in
aa|bb)
echo hello
;;
esac
Also
if $A = aa -o $A = bb ]; then
echo hello
fi
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1
And in Perl:
#!/usr/bin/perl
$a=‘B’;
print ‘hello’ if $a =~ /^(AA)|(BB)$/;
Good luck.
microchip8 wrote:
> Code:
> --------------------
> case “$A” in
> aa|bb)
> echo hello
> ;;
> esac
> --------------------
>
>
> Also
>
>
> Code:
> --------------------
>
> if $A = aa -o $A = bb ]; then
> echo hello
> fi
> --------------------
>
>
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v2.0.9 (GNU/Linux)
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org
iQIcBAEBAgAGBQJKXIwZAAoJEF+XTK08PnB5rIsP/1UOnUltLNxirRMFdSTsiv+k
rGtq/vFz8zWr6ePMoie3HRKCMdyrI9RWVKKF3QU1sYvfEzJvQ2WKSSlQeYGFEVir
QQE5pcCpo0MW7s89WQQ/z03svFkj4eKtnqZ9ZN3jmAPhuVoHUcQvedgid4P6g5gB
1Ir+GrYL55EY1/YTAeT6ShexkzXOKMD38lVqnJwigR8eOA1XIexzdI6GhUqVL0B4
/mQedr8QhELU1bkAbJU6zXByp5aX2tvZwx5sGqeu9ocPkloOQq1KI3wXrS2aUVLD
tTnzvtQtVQ/WFHQIZ9f2Dbhl4+TLAwozhsJDmryJPRzcSuRwdg8dbp0vb/qy/Jss
/kpcq+efLO6nt025gMSEsubCZZ8SwHdCjpXRdnShn6nYQIypJMsLY2D8HS7OvoM9
xrIprm2eBFOeVKPYsBwfcNQJoDMUspODW4n2tHnr1cMYeRe/wNZtfebV+hi3TiKY
3+L23mPBapkgqISYBlhVHvKJ4ow1izgP/QqYXdzvHTXi0sUMaNbYqtA435r6v2ht
L688SMeOpK0ro/7+iZ9AvQwdtkSIp2EPtowdUUU0e7JLXHnMamURJtPpJp03y+xi
qKGfdLhcT5q4ROP2dRoiKVNV6YwtV0VXDXcrIh31NS9RiPZRNkvccNJZdT43UQAM
i/QjBZki2VyxoIiufOni
=tKtu
-----END PGP SIGNATURE-----
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1
Okay, I can do it in bash too:
a=‘AA’
echo $a | grep -e ‘^(AA)|(BB)$’ >/dev/null 2>&1
if $? = 0 ] ; then echo hi; fi
Also in the Perl example ‘B’ is not valid, but ‘AA’ and ‘BB’, as per your
request, were. I just copied one of my tests where I was making sure it
would fail and pasted it instead of the good test. Either way when ‘$a’
is set properly all is well, just like above.
Good luck.
ab@novell.com wrote:
> And in Perl:
>
> #!/usr/bin/perl
> $a=‘B’;
> print ‘hello’ if $a =~ /^(AA)|(BB)$/;
>
>
> Good luck.
>
>
>
>
>
> microchip8 wrote:
>> Code:
>> --------------------
>> case “$A” in
>> aa|bb)
>> echo hello
>> ;;
>> esac
>> --------------------
>
>
>> Also
>
>
>> Code:
>> --------------------
>
>> if $A = aa -o $A = bb ]; then
>> echo hello
>> fi
>> --------------------
>
>
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v2.0.9 (GNU/Linux)
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org
iQIcBAEBAgAGBQJKXI0cAAoJEF+XTK08PnB5V1YP/3xfpgak1MCmmN/54KScMV07
n2vczOwHOUaC2hfkJU6g6AvuLtnNz1O/8Uhsjruo89nfQQgjcuiMDQUbTi89VMSJ
nVG9NfciV2QwPoGRf5xCTH0+oDY+jxRDQXxqPbLqInGZlRDNPT0E3nXMkhNTumEr
wz4vzGQq7rMEY9dfIqlHHkho/aKmr0AMwKTE71VR90n/vPOe8kzPKMiBQcSYONWt
BaFL1R1/QX86obSYDSqmwdSfnxYD1HDAjjb6Qvs3e6Jq/hKtBuR3S9AuDzzCfSmg
+4OM/fm/VcdMEXYX8iOxHLaZR6o0/qs4bcYNYKa5+uyGYS/aq3pRcUg1fTMfD6E0
uJKSXJrpH1IKeGz1lVMqX62k8RgBhr++F+Rlk6gAvtudngbAIG44T1UNEhJ/+4gP
O39r1eeGgzT8DInpgZxxf7OT6JYWWtqB2C1yCleRCXEAFxgn/jh+DIAYIg1enFg/
3Sh+ebBruj9/S8I8uAUFKQJNAr7Pchpcgbsnb9+sUScqixCODoNJoweJZXohrB23
OpuNuQCHJNtIKl175JoaS/UeFh3f9/qVaOfG7DVFTgpojkQ6aLwmBH8IXT5dqhW4
IZJB56L22Rsl2NzsQ7RsOu2sJreY7aDiqosL9SkU9w301RV4ZIpDD9rRchCWTEEn
GEDmpXxqrSETwZY5eOZZ
=inuo
-----END PGP SIGNATURE-----
If the bashfaq link is followed it is possible to do it as suggested but it is very unportable…
shopt -s extglob
if $var = @(foo|bar|more) ]]; then
...
fi
I learn while I help I just missed the question on my first look over the faq. http://mywiki.wooledge.org/BashFAQ/066