這裏是最小的編輯,我可以爲在the p4 docs發現bash的例子件事:
#!/bin/sh
# Set target string, files to search, location of p4 executable...
TARGET='\r\n'
DEPOT_PATH="//depot/src/..."
CHANGE=$1
P4CMD="/usr/local/bin/p4 -p 1666 -c copychecker"
XIT=0
echo ""
# For each file, strip off #version and other non-filename info
# Use sed to swap spaces w/"%" to obtain single arguments for "for"
for FILE in `$P4CMD files [email protected]=$CHANGE | \
sed -e 's/\(.*\)\#[0-9]* - .*$/\1/' -e 's/ /%/g'`
do
# Undo the replacement to obtain filename...
FILE="`echo $FILE | sed -e 's/%/ /g'`"
# ...and use @= specifier to access file contents:
# p4 print -q //depot/src/[email protected]=12345
if $P4CMD print -q "[email protected]=$CHANGE" | fgrep "$TARGET" > /dev/null
then
echo "Submit fails: '$TARGET' not found in $FILE"
XIT=1
else
echo ""
fi
done
exit $XIT
如果目標丟失原來的例子失敗,如果它是目前這一失敗 - 只需切換if
的then
和else
分支。您當然可以進一步編輯它(例如,如果您的grep支持它,例如給出grep
或fgrep
,-q
標誌來抑制輸出,例如GNU's)。