参数

参数用于存储数据。

您可以通过在参数名称前面加上美元符号 ($) 并将名称括在方括号 ({ }) 中来访问该参数的值。 当名称是个位数,是特殊参数或是单个标识时,方括号是可选的。

位置参数

位置参数是从 1 开始的十进制数。 最初, qsh 将位置参数设置为跟在 shell 脚本名称后面的命令行参数。 调用 shell 函数时将临时替换位置参数,并且可以使用 setshift 实用程序重新分配位置参数。

特殊参数

特殊参数由下列其中一个特殊字符表示:

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