链接

链接

我正在编写一个应用程序,我想从中运行用户指定的寻呼机。执行此操作的标准方法似乎是查看 PAGER环境变量。

我不清楚这是一个程序名称还是一个带有参数的程序名称。我试图找到提到这一点的标准,但找不到。

我的直觉是我应该划分空间并执行。我对么?我遇到过各种假设环境变量的程序,例如$PAGER$EDITOR是没有环境变量的程序名称。

也许我应该执行 with sh

链接

答案1

我的直觉是我应该划分空间并执行。

良好的直觉。你正在呼唤执行(3);如何解释您支持的环境变量取决于您。通过支持选项,您可以省去用户编写脚本将它们塞入单个 $PAGER 名称的麻烦。

一个值得效仿的好例子可能是男人(1).在我的系统上,它支持 MANPAGER,它表示:

如果设置了 MANPAGER,则其值将用作用于显示手册页的程序的名称。如果没有,则使用 PAGER。如果这也没有价值,/usr/bin/less -is用来。

这至少意味着 PAGER 可以包含选项。你可以尝试一下你的。我敢打赌确实如此。

我不认为 Posix 解决了如何解释表示实用程序的环境变量的问题。我认为你拥有的最好的就是现有技术的常见例子。

至于是否通过“the”shell 传递它,我会说“不”,除非您想利用 shell 变量扩展并记录它。将外壳排除在外更简单且更可预测。

相关内容