Update README.md
[cmdllinux.git] / bash_n_examples / bash / functions / __asd.sh
blob72593474054a9df1245d5cfb380acc63b0132271
1 #S="\$(asda\$(s\$(g)), \$(z))sd \$(asds \$(asd))dsa"
2 #S="\$(asda\$(s\$(g)), \$(z))sd \$(asds \$(asd))"
3 #S="asd \$(asda\$(s\$(g)), \$(z))sd \$(asds \$(asd))dsa"
5 S="asd \$(if \$(s\$(g)), \$(z))sd \$(asds \$(asd))"
6 ##!spaces! without separating static strings
8 #S="asd\$(if \$(s\$(g)), \$(z))sd \$(asds \$(asd))"
10 echo "$S"
13 echovars()
15 parm="$@"
16 echo -n "$parm" | sed -e 's/\$(/+/g' -e 's/)/-/g' | \
17 while read -r -N 1 A; do
18 [ -z "$PP" ] && PP=0
19 [ -z "$MM" ] && MM=0
20 [ "$PP" = "$MM" ] && oeq=1 || oeq=
21 [ "$A" = "+" ] && PP=$(expr $PP + 1)
22 [ "$A" = "-" ] && MM=$(expr $MM + 1)
23 [ "$PP" = "$MM" ] && eq=1 || eq=
24 [ -z "$oeq" -a -n "$eq" ] && echo -n "- "
25 if [ "$PP" != "$MM" ]; then
26 echo -n "$A"
28 done | \
29 sed -e 's/+/$(/g' -e 's/-/)/g'
30 echo
35 echovars_linefeed()
37 parm="$@"
38 echo -n "$parm" | sed -e 's/\$(/+/g' -e 's/)/-/g' | \
39 while read -r -N 1 A; do
40 [ -z "$PP" ] && PP=0
41 [ -z "$MM" ] && MM=0
42 [ "$PP" = "$MM" ] && oeq=1 || oeq=
43 [ "$A" = "+" ] && PP=$(expr $PP + 1)
44 [ "$A" = "-" ] && MM=$(expr $MM + 1)
45 [ "$PP" = "$MM" ] && eq=1 || eq=
46 [ -z "$oeq" -a -n "$eq" ] && echo "-"
47 if [ "$PP" != "$MM" ]; then
48 echo -n "$A"
50 done | \
51 sed -e 's/+/$(/g' -e 's/-/)/g'
55 echostatic()
57 (echo -n "$S"; echo -n ")") | sed -e 's/\$(/+/g' -e 's/)/-/g' | \
58 while read -r -N 1 A; do
59 [ -z "$PP" ] && PP=0
60 [ -z "$MM" ] && MM=0
61 [ "$PP" = "$MM" ] && oeq=1 || oeq=
62 [ "$A" = "+" ] && PP=$(expr $PP + 1)
63 [ "$A" = "-" ] && MM=$(expr $MM + 1)
64 [ "$PP" = "$MM" ] && eq=1 || eq=
65 [ \( -z "$oeq" -a -n "$eq" \) -a -n "$val" ] && echo -n " " && val=
66 [ \( "$MM" -gt "$PP" \) -a -n "$val" ] && echo -n " " && val=
67 if [ "$PP" = "$MM" ]; then
68 [ "$A" != "-" ] && echo -n "$A" && val=1
70 done
71 echo
74 echo "**"
75 echovars "$S"
76 echo "**"
77 echovars_linefeed "$S"
78 echo "**"
79 echostatic "$S"
80 echo "**"
81 for i in `echostatic "$S"`; do
82 echo "$i"
83 done
84 echo "**"