chdir() 函数带有标志“-”;光盘 -

我正在实现一个类似 Linux shell 的程序。我正在编写 cd 内置命令。

我想支持添加以下标志:...-~

我目前正在使用 chdir() 函数,我注意到它适用于 ...(如果我错了,请纠正我)。
但是,对于 -~,它没有效果。两者都是我单独输入的,也就是:cd ~cd –,以及两者的更复杂组合。

无论如何能告诉我这是为什么吗?我该如何解决这个问题?

具体来说,~ 很容易解决,我可以获取主目录并简单地重定向。
-而言,它会更复杂,我必须存储最近的路径并在有变化时总是更新,不理想。

有人对如何实现标志有更好的想法吗?

谢谢

xiaokang1984 回答:chdir() 函数带有标志“-”;光盘 -

您可以像 shell 一样使用 wordexp() 来扩展字符串。它处理~、反引号命令替换、$(command) 替换、环境变量等;有关详细信息,请参阅 man 3 wordexp 手册页。

这是一个内置于 Linux 标准 C 库的函数(在所有 POSIXy 操作系统中都可用;它不是特定于 Linux 的)。

本文链接:https://www.f2er.com/674220.html

大家都在问