我刚刚分配了一个变量,但echo $ variable显示了其他内容
以下是一系列echo $var
可以显示与刚刚分配的值不同的值的情况。无论指定的值是“双引号”,“单引号”还是不引用,都会发生这种情况。
如何让shell正确设置我的变量?
星号
预期的输出是/* Foobar is free software */
,但我得到一个文件名列表:
$ var="/* Foobar is free software */"$ echo $var /bin /boot /dev /etc /home /initrd.img /lib /lib64 /media /mnt /opt /proc ...
方括号
期望值是[a-z]
,但有时我会得到一个字母!
$ var=[a-z]$ echo $var c
换行(换行符)
预期值是一个单独的行列表,但所有值都在一行!
$ cat file foo bar baz $ var=$(cat file)$ echo $var foo bar baz
多个空间
我期望一个精心对齐的表头,但是多个空格要么消失要么折叠成一个!
$ var=" title | count"$ echo $var title | count
标签
我期望两个制表符分隔值,但我得到两个空格分隔值!
$ var=$'key\tvalue'$ echo $var key value