ClearCase:它是一个bug还是一个功能?

时间:2011-09-30 20:46:02

标签: bash clearcase cleartool

当我从bash中以交互方式运行以下代码时,它可以正常工作。

cleartool setview $myview
cleartool lsbl

但是当我将它们放入脚本并尝试运行脚本时,它永远不会从第一个cleartool命令返回。

在交互式的情况下,第一个cleartool命令打开一个新的bash来运行,当你从新的shell运行第二个命令时,它工作正常。但是在脚本的情况下,新的shell不可见,因此它似乎不会从命令返回。

是否有将cleartool命令保存在运行它们的同一个bash shell中?

2 个答案:

答案 0 :(得分:8)

cleartool setview命令打开一个新的交互式shell。在该shell中,您在手动键入时执行第二个命令。当您将两行放入脚本时,setview会执行等待您输入的shell。退出该shell后立即执行第二个命令。当然,第二个命令不会在$myview

的上下文中执行

为了使事情更清楚,请执行以下操作:在shell中执行cleartool setview $myview五次。在每个echo $$后输入setview。这为您提供了当前shell的进程ID。数字会增加。然后在每个shell中键入exit。在每个echo $$之后再次exit。旧号码将按降序显示。在六exit秒之后,您的终端应该关闭。

这就是解释。您的问题的解决方案可能是-exec命令的setview选项:

cleartool setview $myview -exec "cleartool lsbl"

应该这样做。

答案 1 :(得分:5)

虽然它没有直接回答问题,但以下可能会做你想要的。它使第二个命令在第一个命令打开的子shell中运行。

cleartool setview $myview << EOF
cleartool lsbl
EOF