【发布时间】:2016-07-09 12:24:34
【问题描述】:
我正在编写一个脚本来创建一个清晰的视图并执行一些其他功能。
setview函数中,在脚本内部使用时,对视图进行操作,推荐的命令格式为
cleartool setview -exec "commands" view_name
对于“命令”部分,我想使用在此调用之前在同一 shell 脚本中定义的函数。当我执行以下操作时,它似乎不起作用:
cleartool setview -exec "function_name(var1, var2)" view_name
所以,我的问题是:函数可以与“exec”命令一起使用吗?如果可以,语法是什么?
在其中一个 SO 答案中,它提到不要使用 setview 而是使用 startview。由于我不知道两者之间的区别并且我需要在脚本中执行其他操作,如果我不应该使用 setview exec mecxhanism,我将不胜感激。
我尝试使用函数而不是从“exec”调用的另一个 shell 脚本的原因是,在使用函数时,我不必导出被调用脚本可以使用的变量,因为函数是在调用 setview 命令的同一脚本中定义。
【问题讨论】:
-
您的意思是
bashexec命令,还是cleartool的-exec选项? -
在不了解 cleartool 如何实现
-exec选项的情况下,您似乎不太可能以这种方式(或根本不可能)使用 shell 函数。由于 cleartool 是一个单独的实用程序而不是 shell 的一部分,因此它无法访问 shell 环境,只能通过创建新的子 shell 来实现 exec 选项;在该子外壳中,不会定义该函数。 (Bash 允许您将函数导出到 bash 子shell,但不能保证由 cleartool 启动的子shell 使用 bash。即使这样,您也需要导出所有内容,包括函数。) -
@cdarke - 我的意思是
-exec选项到cleartool -
@rici - 我能够为
-exec选项定义我需要的所有命令。正如我在之前的评论中提到的,我将探索如何使用@VonC 提到的 startview 命令。我可能需要发布其他问题,