how can I know the number of tokens in a bash variabe (whitespace separated tokens) - or at least, wether it is one or there are more.
A:
set VAR='hello world'
echo $VAR | wc -w
here is how you can check.
if [ `echo $VAR | wc -w` -gt 1 ]
then
echo "Hello"
fi
Mykola Golubyev
2009-03-12 14:25:31
+4
A:
The $# expansion will tell you the number of elements in a variable / array. If you're working with a bash version greater than 2.05 or so you can:
VAR='some string with words'
VAR=( $VAR )
echo ${#VAR[@]}
This effectively splits the string into an array along whitespace (which is the default delimiter), and then counts the members of the array.
EDIT:
Of course, this recasts the variable as an array. If you don't want that, use a different variable name or recast the variable back into a string:
VAR="${VAR[*]}"
guns
2009-03-12 14:29:17
+1 - good one. I used to use 'wc -w'. Now I stopped.
Mykola Golubyev
2009-03-12 14:34:51