冒号 :的作用
1 : > data.xxx # 文件"data.xxx"现在被清空了.
23 # 与 cat /dev/null >data.xxx 的作用相同
4 # 然而, 这并不会产生一个新的进程, 因为":" 是一个内建命令.
这只适用于正规文件, 而不适用于管道, 符号连接, 和某些特殊文件.
################################################################################################
问号 ?的作用
测试操作符. 在一个特定的表达式中, ? 用来测试一个条件的结果.
在一个双括号结构中, ? 就是C语言的三元操作符. 参见例子 9-31.
在参数替换表达式中, ? 用来测试一个变量是否被set了. .
?
通配符. ? 在通配(globbing)中, 用来做匹配单个字符的"通配符", 在正则表达式中, 也是用
来表示一个字符.
$
########################################
局部变量
命令组.
1 (a=hello; echo $a)
在括号中的命令列表, 将会作为一个子shell来运行.
在括号中的变量,由于是在子shell中,所以对于脚本剩下的部分是不可用的.
父进程, 也就是脚本本身, 将不能够读取在子进程中创建的变量, 也就是在
子shell中创建的变量.
1 a=123
2 ( a=321; )
3
4 echo "a = $a" # a = 123
5 # 在圆括号中a 变量, 更像是一个局部变量.
##########################################################################################
本文详细解析了Shell中的冒号(:)命令、问号(?)的多种用途及局部变量的使用技巧。冒号命令用于清空文件,问号在不同上下文中扮演着测试条件、变量检查的角色。同时介绍了如何通过命令组实现局部变量的功能。
2245

被折叠的 条评论
为什么被折叠?



