如何检查是否一个Perforce文件使用bash脚本
问题描述:
打开,这样我跑“P4打开the_file”,它打印的状态,但我不能捕获打印:如何检查是否一个Perforce文件使用bash脚本
$ a=`p4 opened file1`
file1 - file(s) not opened on this client.
$ echo $a
变量是空的。
我想要的是,我可以找到字符串“file(s) not opened on this client
”并搜索“未打开”。
任何方式来做到这一点?
答
更改第一行:重定向标准错误到标准输出,让您的变量将捕获正常输出和错误输出
a=`p4 opened file1 2>&1`.
。
答
如果你这样做:
p4 -s opened file1
所有服务器输出被发送到标准输出和一个标签说无论是“错误”或“信息”为前缀(注意,这其中的区别并不总是显而易见)。对于你的情况,应该让你这样的:
error: file1 - file(s) not opened on this client.
exit: 0
另一个有趣的全局选项(即它的命令名称前面去,同为“-s”)是“-e”,它给你的原始错误快译通;你可以用这种方式做一些有趣的事情,比如寻找一个特定的错误代码,而不是查看人类可读的消息字符串。
答
if [[ -z "$(p4 -ztag opened $myfile)" ]]; then echo "Not opened"; fi
p4 -ztag打开不会返回任何文件不打开,所以你可以测试空输出。