我想在C中编写一个命令行工具,它可以作为可移植到Windows/Mac/Linux的高级“cd”或“pushd/popd”命令。 (详细信息,如果您好奇,请致电http://alsweigart.tumblr.com/post/4008393181/command-line-idea-up)以便携方式以编程方式更改shell的cwd
问题是,当用户从shell运行程序时,更改当前工作目录将更改程序的cwd而不是shell的cwd。
有没有办法编写一个程序来做我想做的事情,还是我不得不求助于编写bash脚本/批处理文件?
或者,有没有一种方法可以将程序的输出作为shell命令运行?即程序输出“cd/foo/bar”,shell脚本调用该程序并将其输出作为shell命令运行。
那么在Unix上'cd'也必须一直是内置的shell? – Joey 2011-05-24 23:16:40
这是正确的。将'cd'实现为外部进程将使得不可能更改shell进程的当前目录。 – 2011-05-24 23:18:02