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 =>--------------------------------