使用TK更改终端运行目录

时间:2015-09-29 16:22:01

标签: unix tcl

在我工作的时候,我需要经常更改目录。所以,我写了一个像这样的小代码,但它没有用。

#!/usr/bin/wish
button .exit -text exit -command {exit}
pack .exit -padx 20 -pady 10

button .dir1 -text e1_b_r1_IcPlace -command {exec cd ..}
pack .dir1 -padx 20 -pady 10

以上代码显示错误:

  

无法执行" cd":没有这样的文件或目录

1 个答案:

答案 0 :(得分:1)

exec命令启动执行系统命令或运行脚本文件的新进程。您不需要它来调用cd命令,只需要命令本身:

button .dir1 -text e1_b_r1_IcPlace -command {cd ..}

如果要在创建按钮时指定目录 ,可以使用以下内容:

button .dir1 -text e1_b_r1_IcPlace -command [list cd $dir]

如果您希望在调用按钮时指定目录,这是一种方法:

entry .dir1ent -textvariable dir
button .dir1 -text e1_b_r1_IcPlace -command {cd $dir}

大括号使变量dir不被替换,直到调用该按钮为止,此时调用cd并将条目小部件的当前文本作为参数。

更新:正如glenn jackman所说,这段代码只会影响它自己的进程而不能以这种形式用作常规shell的“远程控制”。但是,如果您使用tkcon作为命令shell并从中启动此代码,则按钮更改shell中的工作目录。

文档:buttoncdentryexeclist