On Tue, May 26, 2015 at 10:31:34AM -0400, Shawn Wilson wrote: > swilson@swlap1:~/temp$ bash --version > GNU bash, version 4.3.11(1)-release (x86_64-pc-linux-gnu) > swilson@swlap1:~/temp$ cat t.txt > $ome text !n a file| > swilson@swlap1:~/temp$ unset t > swilson@swlap1:~/temp$ t=$(< ./t.txt) > swilson@swlap1:~/temp$ echo "$t" > bash: $ome text !n a file|: invalid variable name for name reference > swilson@swlap1:~/temp$ var=foo; declare -n t; t=var; unset t; echo "$t" > bash: $ome text !n a file|: invalid variable name for name reference
As surprising as that is, have a look at "help unset": unset: unset [-f] [-v] [-n] [name ...] Unset values and attributes of shell variables and functions. For each NAME, remove the corresponding variable or function. Options: -f treat each NAME as a shell function -v treat each NAME as a shell variable -n treat each NAME as a name reference and unset the variable itself rather than the variable it references