参数
参数用于存储数据。
您可以通过在参数名称前面加上美元符号 ($) 并将名称括在方括号 ({ }) 中来访问该参数的值。 当名称是个位数,是特殊参数或是单个标识时,方括号是可选的。
位置参数
位置参数是从 1 开始的十进制数。 最初, qsh 将位置参数设置为跟在 shell 脚本名称后面的命令行参数。 调用 shell 函数时将临时替换位置参数,并且可以使用 set 和 shift 实用程序重新分配位置参数。
特殊参数
特殊参数由下列其中一个特殊字符表示:
- * (位置参数)
- (星号) 展开到位置参数,从 1 开始。 如果扩展发生在带引号的字符串中,则扩展为单字段,每个参数的值由 IFS 变量的第一个字符分隔,如果 IFS 未设置,则由 <space> 分隔。
- @ (位置参数)
- (在符号上) 展开到位置参数,从 1 开始。 当扩展发生在引号内时,每个位置参数都将扩展为单独的自变量。 如果没有位置参数,那么 @ 的扩展将生成零参数,即使 @ 在引号中也是如此。
- # (位置参数的数目)
- (数字符号) 扩展为位置参数的十进制数。 它最初设置为调用 qsh 时的自变量数。 它可以通过 set, shift或 dot 实用程序或通过调用函数进行更改。
- ? (退出状态)
- (问号) 展开到最新命令的十进制退出状态。 值为零表示成功完成。 非零值指示错误。 由信号号结束的命令的退出状态为 128 加上信号号。
- -(选项标志)
- (减号) 展开到当前选项标志 (并置为字符串的单字母选项名称) ,这在调用 qsh 时由 set或由 qsh隐式指定。
- $(当前 shell 的进程标识)
- (美元符号) 扩展为当前 shell 的十进制进程标识。 子 shell 保留与当前 shell 相同的 $ 值,即使该子 shell 正在另一进程中运行也是如此。
- ! (后台进程标识)
- (感叹号) 展开为从当前 shell 运行的最新后台命令的十进制进程标识。 对于管道,进程标识是管道中最后一个命令的进程标识。
- 0 (shell 脚本的名称)
- (零) 展开为 shell 或 shell 脚本的名称。