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