Bash ClearCase:这是一个bug还是一个特性?
当我在bash中相互运行下面的代码时,它工作得很好Bash ClearCase:这是一个bug还是一个特性?,bash,clearcase,cleartool,Bash,Clearcase,Cleartool,当我在bash中相互运行下面的代码时,它工作得很好 cleartool setview $myview cleartool lsbl 但当我将它们放入脚本并尝试运行脚本时,它从第一个cleartool命令中永远不会返回 在交互式示例中,第一个cleartool命令似乎打开了一个新的bash来运行,当您从新shell运行第二个命令时,它工作正常。但在脚本的情况下,新shell不可见,因此它似乎不会从命令返回 是否仍然可以将cleartool命令保存在运行它们的bash shell中?cleart
cleartool setview $myview
cleartool lsbl
但当我将它们放入脚本并尝试运行脚本时,它从第一个cleartool命令中永远不会返回
在交互式示例中,第一个cleartool命令似乎打开了一个新的bash来运行,当您从新shell运行第二个命令时,它工作正常。但在脚本的情况下,新shell不可见,因此它似乎不会从命令返回
是否仍然可以将cleartool命令保存在运行它们的bash shell中?cleartool setview命令将打开一个新的交互式shell。在该shell中,手动键入第二个命令时,将执行该命令。将这两行放入脚本时,
setview
执行shell,等待您的输入。第二个命令将在退出该shell后立即执行。当然,第二个命令不会在$myview
的上下文中执行
为了让事情更清楚一点,请执行以下操作:在shell中执行cleartool setview$myview
五次。在每个setview
之后键入echo$$
。这将为您提供当前shell的进程ID。人数将会增加。然后在每个shell中键入exit
。每次退出后再次执行echo$$
。旧号码将按降序显示。六次退出后
s终端应关闭
这就是解释。您的问题的解决方案可能是setview
命令的-exec
选项:
cleartool setview $myview -exec "cleartool lsbl"
应该这样做。虽然它不能直接回答问题,但下面的内容可能会满足您的需要。它使第二个命令在第一个命令打开的子shell中运行
cleartool setview $myview << EOF
cleartool lsbl
EOF
cleartool setview$myview请参见