我想用 C 编写一个命令行工具,作为可以移植到 Windows/Mac/Linux 的高级“cd”或“pushd/popd”命令。(完整的细节,如果你好奇,在http://alsweigart.tumblr.com/post/4008393181/command-line-idea-up)
问题是,当用户从 shell 运行程序时,更改当前工作目录将更改程序的 cwd,而不是 shell 的 cwd。
有没有办法编写程序来做我想做的事,还是我必须求助于编写 bash 脚本/批处理文件?
或者,有没有办法通过管道将程序的输出作为 shell 命令运行?即该程序输出“cd /foo/bar”,一个shell 脚本调用该程序并将其输出作为shell 命令运行。