所有的计算机程序都是用来和数据打交道的。在过去的章节中,我们专注于处理文件级别的数据。 然而,许多程序问题需要使用更小的数据单位来解决,比方说字符串和数字。

在这一章中,我们将查看几个用来操作字符串和数字的 shell 功能。shell 提供了各种执行字符串操作的参数展开功能。 除了算术展开(在第七章中接触过),还有一个常见的命令行程序叫做 bc,能执行更高级别的数学运算。

参数展开

尽管参数展开在第七章中出现过,但我们并没有详尽地介绍它,因为大多数的参数展开会用在脚本中,而不是命令行中。 我们已经使用了一些形式的参数展开;例如,shell 变量。shell 提供了更多方式。

基本参数

最简单的参数展开形式反映在平常使用的变量上。

例如:

$a

当 $a 展开后,会变成变量 a 所包含的值。简单参数也可能用花括号引起来:

${a}

虽然这对展开没有影响,但若该变量 a 与其它的文本相邻,可能会把 shell 搞糊涂了。在这个例子中,我们试图 创建一个文件名,通过把字符串 “_file” 附加到变量 a 的值的后面。

[me@linuxbox ~]$ a="foo"
[me@linuxbox ~]$ echo "$a_file"

如果我们执行这个序列,没有任何输出结果,因为 shell 会试着展开一个称为 a_file 的变量,而不是 a。通过 添加花括号可以解决这个问题:

[me

更多推荐

字符串和数字