9.2 变量类型标注:declare 与 typeset
内建命令 declare
和 typeset
是完全相同的命令,其被用于修改变量的属性。相比起一部分编程语言来说,这种修改属于非常弱的类型标注方式。declare
命令只有在 Bash version 2 及更高版本才能使用,而 typeset
命令可以在 ksh 脚本中运行。
declare
/typeset
命令选项
declare
/typeset
命令选项-r 只读(readonly)
(declare -r var1
与 readonly var1
的作用相同)
该选项约等于 C 语言中的类型限定符 const
。任何尝试修改只读变量的行为都会导致脚本出错。
-i 整型(integer)
被视为整型的变量无需命令 expr
或是 let
即可进行数学运算。
-a 数组(array)
变量 indices
会被视作 数组。
-f 函数(function)
如果没有在 declare -f
后带上任何参数,该语句将会列出在脚本中已经定义的所有函数。
而 declare -f function_name
则仅仅列出名为 function_name
的函数。
-x 导出(export)
该语句声明了变量 var3
可以导出到该变量所属脚本之外的 shell 环境中。
-x var=$value
declare
命令允许在设置变量属性的同时给变量赋值。
样例9-10. 使用 declare
命令标注变量类型
declare
命令标注变量类型注记
在本书中,变量类型标注(typing)是指指定变量类型并限制其属性。例如一个变量被 declared
或是 typed
命令声明为整型,则该变量不再适用于各种 字符串操作。
Last updated