这是一个起点:
p4 change -o | sed 's/<enter.*>/Change to fix job000001/' >change.dat
echo 'Jobs: job000001' >> change.dat
p4 change -i < change.dat >changenumber.out
p4 submit -c `cut -f 2 -d ' ' < changenumber.out`
前两行构造新更改列表的表单数据。
第三行创建编号的更改列表,并保存输出,类似于“更改 12345 已保存”。
第四行提取该更改编号并将其提供给“p4 submit -c”。
当然,我没有做任何错误检查,向用户报告结果等。
作为替代方案,请考虑以下情况:
p4 submit -d "Change to fix job000001" | grep 'Change .* submitted' | cut -f 2 -d ' ' >change.out
p4 fix -c `cat change.out` job000001
该变体在不附加作业的情况下提交更改,然后将更改与作业相关联。
无论哪种方式,请考虑使用 Perforce 脚本 API(P4Perl、P4Ruby、P4Python 等)之一来代替这个,因为它们要容易得多。