怎么才能找到目录
how can find directory
启动 tcl 脚本时,会通过 bash 命令创建一个目录。在脚本的末尾,我想读取最新目录的目录名称。但是我的脚本没有找到最新的目录,只有第二个最新的
bind pub "-|-" !aa pub:aaa
proc pub:aaa {nick host handle channel arg} {
set home "/home/user"
set bb [exec bash -c "start.sh"]
after 3000
set latest [exec bash -c "ls -td $home/jpg/*/ | head -n1"]
putnow "PRIVMSG $channel :$latest"
}
在启动之前它的目录中有以下文件夹:
drwxr-xr-x 2 user user 4096 Jun 24 18:30 aaa
drwxr-xr-x 2 user user 4096 Jun 24 18:14 bbb
启动后目录中有以下文件夹
drwxr-xr-x 2 user user 4096 Jun 24 18:30 aaa
drwxr-xr-x 2 user user 4096 Jun 24 18:14 bbb
drwxr-xr-x 2 user user 4096 Jun 24 18:35 ccc
输出为:
<@testbot> aaa
应该是这样
<@testbot> ccc
他找到创建的目录,其间tcl脚本没有运行
如何显示最新的、新建的目录?
问候
我不会尝试执行 shell 来查找最近修改的目录,而是在纯 tcl 中执行此操作:
proc latest_directory {path {time mtime}} {
set dirs {}
foreach dir [glob -nocomplain -type d $path/*] {
file stat $dir s
lappend dirs $s($time) $dir
}
if {[llength $dirs] == 0} {
error "No directories found in $path"
} else {
return [lindex [lsort -integer -decreasing -stride 2 $dirs] 1]
}
}
# Then in pub:aaa
set latest [latest_directory $home/jpg]
至于为什么你没有得到 ccc
...如果没有看到你的 start.sh
脚本很难确定,但如果它最终在后台出现 运行 东西退出后继续,创建该目录可能需要 3 秒以上?
启动 tcl 脚本时,会通过 bash 命令创建一个目录。在脚本的末尾,我想读取最新目录的目录名称。但是我的脚本没有找到最新的目录,只有第二个最新的
bind pub "-|-" !aa pub:aaa
proc pub:aaa {nick host handle channel arg} {
set home "/home/user"
set bb [exec bash -c "start.sh"]
after 3000
set latest [exec bash -c "ls -td $home/jpg/*/ | head -n1"]
putnow "PRIVMSG $channel :$latest"
}
在启动之前它的目录中有以下文件夹:
drwxr-xr-x 2 user user 4096 Jun 24 18:30 aaa
drwxr-xr-x 2 user user 4096 Jun 24 18:14 bbb
启动后目录中有以下文件夹
drwxr-xr-x 2 user user 4096 Jun 24 18:30 aaa
drwxr-xr-x 2 user user 4096 Jun 24 18:14 bbb
drwxr-xr-x 2 user user 4096 Jun 24 18:35 ccc
输出为:
<@testbot> aaa
应该是这样
<@testbot> ccc
他找到创建的目录,其间tcl脚本没有运行
如何显示最新的、新建的目录?
问候
我不会尝试执行 shell 来查找最近修改的目录,而是在纯 tcl 中执行此操作:
proc latest_directory {path {time mtime}} {
set dirs {}
foreach dir [glob -nocomplain -type d $path/*] {
file stat $dir s
lappend dirs $s($time) $dir
}
if {[llength $dirs] == 0} {
error "No directories found in $path"
} else {
return [lindex [lsort -integer -decreasing -stride 2 $dirs] 1]
}
}
# Then in pub:aaa
set latest [latest_directory $home/jpg]
至于为什么你没有得到 ccc
...如果没有看到你的 start.sh
脚本很难确定,但如果它最终在后台出现 运行 东西退出后继续,创建该目录可能需要 3 秒以上?