我不寫很多Bash,所以我有點難以確定如何解決這個問題。我需要檢查從命令返回的值是否大於x
。當它運行,雖然我得到[: -gt: unary operator expected
,我無法修復。[:-gt:一元運算符預期
這裏是我的腳本,
#!/bin/sh
ERROR=0
PHPCPDLevel=100
# PHPCPD
echo "PHP CopyPaste Detection (Limit is at least ${PHPCPDLevel}%"
PHPCPD="phpcpd ."
if [[ `echo $PHPCPD | grep "%" | cut -d'.' -f1` -gt "$PHPCPDLevel" ]]
then
echo $PHPCPD
ERROR=1
else
echo "... -> Only `echo $PHPCPD | grep "%" | cut -d'.' -f1`%"
fi
echo "Finished!"
exit $ERROR
更新: 我覺得我已經做到了:
#!/bin/sh
ERROR=0
PHPCPDLevel=25
# PHPCPD
echo "PHP CopyPaste Detection (Limit is at most ${PHPCPDLevel}%)"
PHPCPD="phpcpd ."
PERCENTAGE=$($PHPCPD | grep "%" | cut -d'.' -f1)
if [ ${PERCENTAGE} -gt ${PHPCPDLevel} ]
then
echo $PHPCPD
ERROR=1
else
echo "Only $PERCENTAGE%"
fi
exit $ERROR
echo $ PHPCPD | grep「%」|切「-d」。 -f1' – anubhava
現在是'5'。 – James
首先執行任何操作並將結果存儲在變量中然後進行比較是很好的。 –