bash - Performing variable substitution in a string -
i have string contains use of variable, , i'd substitute variable's value string. right best have is
#!/bin/bash  foo='$name; echo bar' name="the    name" expanded="$(eval echo "$foo")" echo "$expanded"   which has obvious defects: prints
the name bar   while i'd print
the    name; echo bar      
instead of eval can bash's regex matching bash's string replacement:
foo='$name; echo bar' name="the    name" [[ "$foo" =~ \$([[:alnum:]]+) ]] && s="${!bash_rematch[1]}" &&   expanded="${foo/\$${bash_rematch[1]}/$s}"  echo "$expanded"    name; echo bar      
Comments
Post a Comment