prints()
{
str="str1";
echo "Hello"${str}
}
prints
echo ${str}
~
wang@linux:~/test> ./testexit.sh
Hellostr1
str1
#!/bin/bash
prints()
{
local str="str1";
echo "Hello"${str}
}
prints
echo ${str}
~
wang@linux:~/test> ./testexit.sh
Hellostr1
anadict.sh
#! /bin/bash
DICT=/usr/share/dict/words
COUNT=false
GROUP=false
WHERE=false
usage() {
echo "usage: $0 [-c] [-w <where clause>] [-g <group by clause>]"
echo -e "\tEXAMPLE"
echo -e "\t$0 -c -w 's$ -g 1:3"
echo -e "\tmeans"
echo -e "\tselect count(*) where word like '%\'s' group by substr(word,0,3)"
}
where() {
[ $WHERE = true ] && grep "$GREP" $1 || cat $1
}
count() {
wc -l --
}
toGroupKey() {
IFS=: read offset length <<< $GRBY
while read w
do
if [ -z $length ];then
k=${w:$offset}
else
k=${w: $offset:$length}
fi
echo "${k}" | grep -v ^$
done
}
groupByCount() {
sort | uniq -c
}
[ $# -eq 0 ] && usage && exit 1
while getopts ":cw:g:" opt
do
case $opt in
c ) COUNT=true
;;
w)
WHERE=true
GREP=$OPTARG
;;
g)
GROUP=true
GRBY=$OPTARG
;;
*)
usage
exit 1
;;
esac
done
if [ $GROUP != true ]; then
where $DICT | ([ $COUNT = true ] && count || cat )
else
where $DICT | toGroupKey | ([ $COUNT = true ] && groupByCount || cat )
fi
exit 0