如何在perl脚本中检查perforce中是否存在文件
我可以在perl脚本中使用如何在perl脚本中检查perforce中是否存在文件,perl,perforce,Perl,Perforce,我可以在perl脚本中使用if(-e$file)来判断linux中是否存在文件。 我可以在linux中运行p4 fstat$file来判断perforce depot中是否存在文件。 但是如何使用perl脚本检查文件是否在perforce depot中?您可以使用backtick操作符从perl脚本运行命令: `p4 files $file` 这将作为一个真实的检查,以查看Perforce中是否存在文件: if (`p4 -F %depotFile% files "$file"`) 请注意,
if(-e$file)
来判断linux中是否存在文件。我可以在linux中运行
p4 fstat$file
来判断perforce depot中是否存在文件。但是如何使用perl脚本检查文件是否在perforce depot中?您可以使用backtick操作符从perl脚本运行命令:
`p4 files $file`
这将作为一个真实的检查,以查看Perforce中是否存在文件:
if (`p4 -F %depotFile% files "$file"`)
请注意,这要求您在运行脚本之前登录到Performance server(如果无法连接,则上述情况下将始终显示“false”)。您可以使用backtick操作符从Perl脚本运行命令:
`p4 files $file`
这将作为一个真实的检查,以查看Perforce中是否存在文件:
if (`p4 -F %depotFile% files "$file"`)
请注意,这要求您在运行脚本之前登录到Perforce服务器(如果无法连接,则上述情况下始终会出现“false”)根据所问问题,您似乎可以使用Perl的
system()
或exec()
方法运行p4命令,或者如上所述使用“backticks”操作符
backtics操作符将允许您从命令中捕获STDERR
和STDOUT
,以便您可以将其用于任何用途
其他两个将尝试运行该命令并相应地给出返回值,如中所述
因此,通常可以执行以下命令:
p4 files $file
接
echo $?
第二个命令将获取最后一个shell命令的退出状态
使用反勾号时,您还可以尝试以下操作:
Windows:执行命令2>NUL
Linux/OSX:执行命令2>/dev/null
这些将抑制STDERR,并仅提供输出。如果使用“1”而不是“2”,则将禁止显示标准输出,并仅获取错误
最后,如果两者都需要,可以使用:
Windows/Linux/macOS:执行1>2的命令&
这将连接STDOUT
和STDERR
简而言之,您可以使用Perl在任何操作系统上运行任何现有程序,并且有多种方法来处理结果。根据所问的问题,您似乎可以使用Perl的
system()
或exec()
方法运行p4命令,或者如上所述使用“backticks”操作符
backtics操作符将允许您从命令中捕获STDERR
和STDOUT
,以便您可以将其用于任何用途
其他两个将尝试运行该命令并相应地给出返回值,如中所述
因此,通常可以执行以下命令:
p4 files $file
接
echo $?
第二个命令将获取最后一个shell命令的退出状态
使用反勾号时,您还可以尝试以下操作:
Windows:执行命令2>NUL
Linux/OSX:执行命令2>/dev/null
这些将抑制STDERR,并仅提供输出。如果使用“1”而不是“2”,则将禁止显示标准输出,并仅获取错误
最后,如果两者都需要,可以使用:
Windows/Linux/macOS:执行1>2的命令&
这将连接STDOUT
和STDERR
因此,简而言之,您可以使用Perl在任何操作系统上运行任何现有程序,并且有多种方法来处理结果。p4命令如何表示存在?使用backticks或should可以工作。
p4
命令如何表示存在?使用倒勾或倒勾应该有效。