2

Unixでは、cd -前のディレクトリに戻ることができます。tclインタープリターに同様のコマンドがあるかどうか疑問に思っていましたが、同じことができますか?

4

2 に答える 2

4

Tclはデフォルトでディレクトリ履歴/スタックを維持しません。1つ追加する必要があります。ただし、純粋な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 に答える