shell中命令代换$()与`` 、 变量代换${} 、 整数运算$(( )) 的区别
命令代换$()与`` 、 变量代换${} 、 整数运算$(( )) 1、$( ) 与 ` ` (反引号) 在 bash shell 中,$( ) 与 ` ` (反引号) 都是用来做命令替换用(command substitution)的。 所谓的命令替换与我们第五章学过的变量替换差不多,都是用来重组命令行: * 完成引号里的命令行,然后将其结果替换出来,再重组命令行。 例如: [code]$ echo the last sunday is $(date -d "last sunday" +%Y-%m-%d)[/code] 如此便可方便得到上一星期天的日期了… ^_^ 用 $( ) 的理由: 1, ` ` 很容易与 ' ' ( 单引号)搞混乱,尤其对初学者来说。 有时在一些奇怪的字形显示中,两种符号是一模一样的(直竖两点)。 当然了,有经验的朋友还是一眼就能分辩两者。只是,若能更好的避免混乱,又何乐不为呢? ^_^ 2, 在多层次的复合替换中,` ` 须要额外的跳脱( \` )处理,而 $( ) 则比较直观。例如: 这是错的: [code]command1 `command2 `command3` `[/code] 原本的意图是要在 command2 `command3` 先将 command3 提换出来给 command 2 处理, 然后再将结果传给 command1