在我工作的时候,我需要经常更改目录。所以,我写了一个像这样的小代码,但它没有用。
#!/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":没有这样的文件或目录
答案 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中的工作目录。