1.tcl中,{} 对里面的各种 特殊字符 都不作处理,仅当做普通的字符串
“” 对里面的各种 分隔符 不作处理,但是对换行符(\n);置换符($;[ ])会照常处理
需要注意的是,在foreach中的 {} 里面的内容 变量置换 和 计算 操作仍会正常执行,是因为在foreach中{}作为其中的循环体,因此会正常执行。
2.$();${};$的区别
①:$():小括号里面通常是放命令,用来做命令替换,即将命令执行后的结果作为参数返回,但是$()这个用法通常使用在Makefile中,有3个作用分别是 变量引用;函数调用;shell命令
②:${}:花括号里面通常是放变量,用来做变量替换,将变量的值替换以后再返回
③:$:$后面跟的也是变量,用来变量替换,与{}相比,花括号{}相当于界定符,避免混淆
如:
set a 10 set a 10
echo ${a}b echo $ab
10b can't read "ab":no such variable
3.echo后面不加引号;单引号‘’;双引号“”;反引号``的区别
不加引号:字符串原样输出,变量会被替换,但是对空格不会解析,不会把空格作为整体;
单引号‘’:单引号无视里面所有的字符,不会进行替换;
双引号“”:字符串原样输出,变量会被替换,空格也会当做整体一同输出;
反引号``:命令替换,将命令执行后的结果返回再输出;
① echo aaa bbb ② echo “aaa bbb”
aaa bbb aaa bbb
③ set a 10 ④ set a 10 ⑤ set a 10
echo $a echo '$a' echo “$a”
10 $a 10
4.grep后面不加引号;单引号‘’;双引号“”的区别
不加引号:与echo类似,同样变量会进行替换,但对字符串中含有空格不会当做整体
单引号‘’:单引号无视里面的字符,不会进行替换;
双引号“”:变量会进行替换,同时字符串中间的空格也会视为整体
标签:10,变量,区别,单引号,引号,echo,TCL,替换 From: https://blog.csdn.net/m0_70466938/article/details/136902471