我试图一次执行多个命令,但令我惊讶的是只有第一个命令被执行而其余命令被跳过。命令是
cleartool setview view1234 ; cleartool setactivity activity456 ; cd /vobs/app/src/epw/WEB-INF/scripts ; pwd
以上命令的输出是
You can now run 'clearquest' to start Rational ClearQuest.
但我希望看到以下3行输出:
You can now run 'clearquest' to start Rational ClearQuest.
Set activity "activity456" in view "view1234".
/vobs/app/src/epw/WEB-INF/scripts
我的搜索工作通过用&符号(&)或管道(|)替换分号(;)来为同一命令产生更多变化,但似乎没有任何工作。
有关如何运行上述多个命令的任何建议/想法?
答案 0 :(得分:3)
不要在子shell中使用cleartool setview
:it forks the current shell,这就是为什么在单行执行时会跳过其余内容。
这就是为什么它一个接一个地执行(最后两个在子shell中执行)
始终使用full path of the dynamic view:/view/aview/vobs/avob/...
,而不是setview
(您不需要)。
如果您必须使用cleartool setview
,请将其与-exec
选项(as in this answer)一起使用:
cleartool setview -login -exec "command 1; command 2; command 3" view_tag
在你的情况下:
cleartool setview -exec 'cleartool setactivity activity456 ; cd /vobs/app/src/epw/WEB-INF/scripts ; pwd' view1234
没有setview:
OP问道:
说我名为
humanbeing
的观点位于universe/planet/earth/humanbeing.vws
如何使用
startview
command ?
是否像
cleartool startview universe/planet/earth/humanbeing
或
cleartool startview cd universe/planet/earth/humanbeing
在这两种情况下,它都显示错误:无法设置视图标记
universe/planet/earth/humanbeing
确定,执行cleartool lsview -s | grep humanbeing
:会为您提供视图标记。
应该是:
cleartool startview humanbeing
cd /view/humanbeing/vobs/<avob>
universe/planet/earth/humanbeing.vws
是视图存储,而不是视图标记。
确保
cleartool mount /vobs/avob
)myapp/WEB-INF/scripts
出现在/view/humanbeing/vobs/<avob>
中
请勿尝试在/vobs
中执行任何符号链接:/vobs
是一个特殊的MVFS(多版本文件系统)安装点,而不是常规文件夹。
确保您的网络应用程序在/vobs
以外的其他路径中搜索应用程序。
答案 1 :(得分:0)
我不确定你要做什么,因为它似乎是一个更大的问题空间的一部分,但是...
cleartool setact -view view1234 activity456
用于在视图中设置活动,然后
cd /view/view1234/vobs/app/src/epw/WEB-INF/scripts
会帮助你。或者将它们打在一起以获得结果:
cleartool setact -view view1234 activity456 && cd /view/view1234/vobs/app/src/epw/WEB-INF/scripts && pwd
声明<stmt1> && <stmt2>
是if [[ <stmt1> ]]; then <stmt2>
有关执行unix命令的更多信息,请参阅KSH man page&#34;一次性拍摄&#34;。
分号(;)导致前一个管道的顺序执行; &符号(&amp;)导致前一个管道的异步执行(即,shell不等待该管道完成)。符号|&amp;使用建立到父shell的双向管道导致前一个管道的异步执行; ......符号&amp;&amp; (| |)仅在前面的管道返回零(非零)值时才会执行其后面的列表。
答案 2 :(得分:0)
我无法访问Clearcase进行尝试,但有时从过去的经验来看,您将需要RTFM,这些工具可以接受反向管道或输入脚本文件,请查看文档中的语法等为:
Cleartool < echo
command_sequence
echo
command_sequence | Cleartool -
或
Cleartool -f
inputfile 或命令序列 或
Cleartool -c
inputfile 或命令序列 或
Cleartool run
inputfile 或命令序列 或
如果您确实找到了上述的一些变体,请通过发布您自己的答案告诉我们,以便下一个有问题的人可以受益。