深入探索Shell的参数扩展与算术运算
1. 参数扩展:返回变量名
Shell具备返回变量名的能力,这在一些特殊场景中十分有用。可以使用${!prefix*}和${!prefix@}这两种扩展形式来返回以prefix开头的现有变量的名称。根据bash文档,这两种形式的扩展效果相同。
例如,列出环境中所有以BASH开头的变量:
[me@linuxbox ~]$ echo ${!BASH*} BASH BASH_ARGC BASH_ARGV BASH_COMMAND BASH_COMPLETION BASH_COMPLETION_DIR BASH_LINENO BASH_SOURCE BASH_SUBSHELL BASH_VERSINFO BASH_VERSION2. 字符串操作
有大量的扩展可用于对字符串进行操作,其中许多扩展特别适合用于路径名操作。
-${#parameter}:扩展为parameter所包含字符串的长度。通常,parameter是一个字符串;但如果parameter是@或*,则扩展结果为位置参数的数量。
[me@lin