我可以使用perl脚本中的if (-e $file)来判断文件是否存在于linux中。
我可以在linux中运行p4 fstat $file来判断文件是否存在于perforce depot中。
但是如何使用perl脚本检查文件是否在perforce depot中呢?
发布于 2018-02-26 05:32:41
您可以在Perl脚本中使用反引号运算符运行命令:
`p4 files $file`这将作为检查Perforce中是否存在文件的真实检查:
if (`p4 -F %depotFile% files "$file"`)请注意,这要求您在运行脚本之前登录到Perforce服务器(如果您无法连接,则在上述情况下您将始终得到"false“)。
发布于 2018-02-26 05:49:13
根据所提出的问题,您似乎可以使用Perl的system()或exec()方法运行p4命令,或者如上所述使用"backticks“运算符。
backtics操作符将允许您从命令中捕获STDERR和STDOUT,以便您可以将其用于任何目的。
另外两个将尝试运行该命令并相应地提供返回值,如perldoc -f exec中所述
因此,通常可以执行的命令如下:
p4 files $file紧接着是
echo $?第二个命令将获取最后一个shell命令的退出状态。
在使用反引号时,您还可以尝试以下操作:
Windows:command-to-execute 2>NUL
Linux / OSX:command-to-execute 2> /dev/null
这些将抑制STDERR,并且只给出输出。如果您使用"1“而不是"2”,您将取消STDOUT,并且只得到错误。
最后,如果你想两者兼得,你可以使用:
Windows / Linux / macOS:command-to-execute 1>2&
这将连接STDOUT和STDERR。
因此,简而言之,您可以使用Perl在任何操作系统上运行任何现有程序,并且有多种方法可以处理结果。
https://stackoverflow.com/questions/48978668
复制相似问题