Re: Bash bug?

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

 



On Monday, Sep 26th 2005 at 07:12 +0200, quoth Zoltan Boszormenyi:

=>Hi,
=>
=>I am trying something like the following,
=>with a configuration file containing a token and
=>a directory in a line, depending on the tokens,
=>certain actions should be taken later. Validating
=>the configuration file whether all the required/optional
=>tokens are in the file should go like this:
=>
=>-----a.txt----------------------
=>A directory1
=>B directory2
=>C directory3
=>--------------------------------
=>
=>-----a.sh-----------------------
=>#!/bin/bash
=>
=>HAS_A=0
=>HAS_B=0
=>HAS_C=0
=>cat a.txt | while read i ; do
=>        if [ "`echo $i | awk '{ print $1 }'`" = "A" ]; then
=>                HAS_A=1
=>        fi
=>        if [ "`echo $i | awk '{ print $1 }'`" = "B" ]; then
=>                HAS_B=1
=>        fi
=>        if [ "`echo $i | awk '{ print $1 }'`" = "C" ]; then
=>                HAS_C=1
=>        fi
=>        echo "A: $HAS_A B: $HAS_B C: $HAS_C"
=>done
=>echo "Final A: $HAS_A B: $HAS_B C: $HAS_C"
=>--------------------------------

#!/bin/bash

HAS_A=0
HAS_B=0
HAS_C=0
while read lbl dir
do
    [[ $lbl = A ]] && HAS_A=1
    [[ $lbl = B ]] && HAS_B=1
    [[ $lbl = C ]] && HAS_C=1
    echo "A: $HAS_A B: $HAS_B C: $HAS_C"
done < a.txt
echo "Final A: $HAS_A B: $HAS_B C: $HAS_C"

cat | while causes the while to be in a subshell.

=>Result is:
=>
=>--------------------------------
=>$ ./a.sh
=>A: 1 B: 0 C: 0
=>A: 1 B: 1 C: 0
=>A: 1 B: 1 C: 1
=>Final A: 0 B: 0 C: 0
=>--------------------------------


-- 
Time flies like the wind. Fruit flies like a banana. Stranger things have  .0.
happened but none stranger than this. Does your driver's license say Organ ..0
Donor?Black holes are where God divided by zero. Listen to me! We are all- 000
individuals! What if this weren't a hypothetical question?
steveo at syslang.net


[Index of Archives]     [Current Fedora Users]     [Fedora Desktop]     [Fedora SELinux]     [Yosemite News]     [Yosemite Photos]     [KDE Users]     [Fedora Tools]     [Fedora Docs]

  Powered by Linux