I understand that this is not a duplicate post, since other posts, even though they have covered development patterns, have not dealt with the while clause precisely. There are many examples of using "if", but not "while".
I tried many codes, but my 'while' clause do not work correctly! :\
I am using: CentOS 7x (64-bit) and shell bash
#!/bin/bash
bkp="x"
while [[ "$bkp" != "Y" || "$bkp" != "y" || "$bkp" != "N" ]]
do
echo $bkp
read bkp
done
exit 0
When I run:
bash -x ./script
+ bkp=x
+ [[ x != \Y ]]
+ echo x
x
+ read bkp
I can't get out of while loop! :\ The while clause compare doesn't work!
I tried too:
#!/bin/bash
bkp="x"
while [[ "$bkp" != "Y" ]] || [[ "$bkp" != "y" ]] || [[ "$bkp" != "N" ]]
do
echo $bkp
read bkp
done
exit 0
And
#!/bin/bash
bkp="x"
while [ "$bkp" != "Y" -o "$bkp" != "y" -o "$bkp" != "N" ]
do
echo $bkp
read bkp
done
exit 0
Another example:
#!/bin/bash
bkp="x"
while [ $bkp != 'Y' -o $bkp != 'y' -o $bkp != 'N' ]
do
echo $bkp
read bkp
done
exit 0
Another example:
#!/bin/bash
bkp="x"
while [[ $bkp != 'Y' ]] || [[ $bkp != 'y' ]] || [[ $bkp != 'N' ]]
do
echo $bkp
read bkp
done
exit 0
In the last case, when I run the script:
bash -x ./script
+ bkp=x
+ '[' x '!=' Y -o x '!=' y -o x '!=' N ']'
+ echo x
x
+ read bkp
Y
+ '[' Y '!=' Y -o Y '!=' y -o Y '!=' N ']'
+ echo Y
Y
+ read bkp
y
+ '[' y '!=' Y -o y '!=' y -o y '!=' N ']'
+ echo y
y
+ read bkp
N
+ '[' N '!=' Y -o N '!=' y -o N '!=' N ']'
+ echo N
N
+ read bkp
I imagine that is a simple thing to fix my code, hehehe ...
Any idea?
Thanks, Joca.