我正在阅读cd 命令的 POSIX 手册。我一直猜测手册中的“curpath”代表当前路径或其他东西,但我仍然不清楚如何理解整个文档。下面是描述。
在以下步骤中,符号柯帕斯表示一个中间值,用于简化 所用算法的描述
cd
。没有要求柯帕斯对应用程序可见。
对我来说,这个描述中最不清楚的部分是“中间值”有人能给我一些关于“curpath”和“中间值”的例子吗?
答案1
这页cd
包含为符合 POSIX 标准而实施应遵循的步骤的描述。curpath
就像一个“临时变量”。假设最初它被定义并分配了一个虚拟值。下面的步骤可以修改它的值,最后curpath
保存处理的结果。您可以在步骤 10 中看到,最终使用chdir()
参数调用了系统函数curpath
。只需要这个最终值对外可见。
因此,它是一个中间值,不需要对应用程序可见,意味着不需要知道 的任何临时值curpath
,甚至不需要确切地执行这些步骤,这是对实现应该如何工作的描述。要求是,实现该cd
命令的程序应该为整个输入空间提供与我手动遵循该算法所得到的结果相同的最终结果。
示例,如何遵循唯一的输入情况:
- 我在主目录 (
PWD=/home/user
) 中并输入cd ..
- 步骤1:条件为假,有一个目录(论证)提供。
- 步骤2:条件为假。
- 步骤3:条件为假,不以斜线开头。
- 步骤 4:正确,从点开始,转到步骤 6。
- 第6步:
curpath=..
- 第 7 步:它不以 开头
/
,那么curpath=/home/user/..
- 第8步:依此类推直至结束。
执行此操作的任何代码块之外的任何人都不需要查看这些临时curpath
值。