2016-01-04 94 views
1

我正在使用shell script將我的插件部署到WordPress庫。在shell腳本中等於等於

雖然這在大多數情況下工作,一些插件失敗。問題是腳本檢查版本號並將readme.txt與實際插件文件[Source]進行比較。

輸出示例:

readme version: 0.5 
plugin.php version: 0.5 
Versions don't match. Exiting.... 

我可以只取出檢查,但我想有隻爲它的最初目的。

那麼爲什麼是0.5 != 0.5?這是一個錯誤的類型?

編輯:

這是腳本的一部分

# Check version in readme.txt is the same as plugin file 
NEWVERSION1=`grep "^Stable tag" $GITPATH/readme.txt | awk -F' ' '{print $3}'` 
echo "readme version: $NEWVERSION1" 
NEWVERSION2=`grep "^Version" $GITPATH/$MAINFILE | awk -F' ' '{print $2}'` 
echo "$MAINFILE version: $NEWVERSION2" 

if [ "$NEWVERSION1" != "$NEWVERSION2" ]; then echo "Versions don't match $NEWVERSION1 != $NEWVERSION2. Exiting...."; exit 1; fi 

更新

if [ "$NEWVERSION1" != "$NEWVERSION2" ]; then echo "Versions don't match $NEWVERSION1# != $NEWVERSION2#. Exiting...."; exit 1; fi 

,當我得到的輸出

#. Exiting.... match 0.5# != 0.5 

所以'#'在開頭。

+0

而不是鏈接到外部腳本,它會更有用,爲您提供一個最小的腳本,可以重現您遇到的問題。 –

+0

謝謝,我錯過了。 – Xaver

+1

我懷疑有些地方還有一些額外的空間。嘗試在腳本中添加一個'set -x'來查看正在比較的值。 –

回答

3
#. Exiting.... match 0.5# != 0.5 

你的第二值包含\r將光標移動到行的開始,因此輸出。

echo -e "abc\rd" # dbc 

將其與| tr -d '\r'分開。

+0

好的,謝謝,你能告訴我在哪裏放? – Xaver

+0

將其存儲在變量中的地方,內部命令替換。 –

+0

完美,謝謝! – Xaver