想做:“for x in ls`; do cd $ x; get.exp $ x; cd ..; done”但是在我的EXPECT脚本中

时间:2013-02-08 01:44:53

标签: bash tcl expect

基本上就像标题所说......

我想知道我目前正在运行我的脚本的目录,并且对于目录中的每个文件夹,cd进入该目录并使用文件夹名称作为参数执行我的脚本。

ie:在${HOME}我有2个目录说' 31'和' 32' (将始终是数字和增量)

因此,在我的脚本中,我将在31中进行cd,将某些文件从另一台机器rsync到该目录,cd ..,然后cd到32并重复直到没有更多文件夹。

我使用当前的get.exp并运行:

for x in ls; do cd $x ; get.exp $x ; cd .. ; done

作为bash别名。但是我喜欢删除别名...

1 个答案:

答案 0 :(得分:4)

你的循环的tcl等价物是

foreach x [glob -nocomplain *] {
    cd $x
    exec get.exp $x
    cd ..
}

您可以简化它(可能只是使用source get.exp或调用适当的proc)但它是基本相同的想法。