bash如何看待扩展

bash如何看待扩展

以下是shell读取并执行一个命令的流程的简要描述.基本上, shell会做以下
几件事情:
  1.从一个文件(*参见Shell脚本:,或作为调用选项'-c'变元的一个字符串,
     或用户终中读取输入.

  2.依据引用规则(*参见引用:, 将输入分割成单词和操作符.注意这些token
     被元字符分隔.别名扩展也在这步中进行.

  3.将这些token解析为简单或复合命令(*参见Shell命令:.

  4.进行各种shell扩展(*参见Shell扩展:,使扩展后的token变成文件名列表
     (*参见文件名扩展::), 命令和变元.

  5.进行各种必要的重定向(*参见重定向::), 然后从变元列表中移去重定向操作
     符和他们的操作数.

  6.执行该命令(*参见命令的执行::).

  7.可选地等待该命令执行结束并收集其退出状态(*参见退出状态::).       
shell扩展,是函数调用还是简单的字符串替换      
以下各种情形都属于 shell expansion 的【范畴】:
echo {a,b}
cd ~user
echo $var
echo $(command ...)
echo $(( a + b ))
rm -f *.bak
... ...      
echo $(command ...)

$()算不算操作符?      
breaking the expanded tokens int lists of file names and commands and arguments

孙悟空72变      
引用:
原帖由 blackspace 于 2008-10-20 13:53 发表
echo $(command ...)

$()算不算操作符?
说它是操作符好像没有什么不妥. 不过俺从来没有想过要给它一个【名分】, 只是用它而已