2

在 Unix 上,cd -可以切换回上一个目录。我想知道 tcl 解释器中是否有类似的命令可以做同样的事情?

4

2 回答 2

4

Tcl 默认不维护目录历史/堆栈;你必须添加一个。你可以在纯 Tcl 中做到这一点:

rename cd real_cd
variable old_dir [pwd]
proc cd {directory} {
    variable old_dir
    if {$directory eq "-"} {
        set directory $old_dir
    }
    set old_dir [pwd]
    real_cd $directory
}

这是一个非常简单的版本,它只记住最后一个位置,但其他所有内容都可以以相同的方式构建在上面。

于 2013-02-04T10:17:11.620 回答
3

不,在 Tcl 中没有目录堆栈,并且以前的目录在任何地方都不会被记住。

TclX为目录堆栈提供pushdpopd命令,但它不会修改cd命令以将任何内容放在那里。它可以通过命令包装和重命名来完成,但我不推荐它用于可以在脚本中使用的东西(至少不要覆盖 的语义cd -)。

于 2013-02-04T09:58:17.150 回答