2017-06-29 54 views
0

特拉維斯CI似乎從昨天以來非常奇怪的行爲不端。我知道他們在2017年6月21日向Travis推出了一個更新,但是這個問題昨天才開始發生在我身上,導致了我的一個回購問題,但幸運的是我恢復了最後一次提交,所有事情都還好,並且完成了否定從那時起更多的提交只是今天整天在不同的測試回放上運行測試,並且仍然存在問題。特拉維斯CI簡單的bash打破最新更新任何「n」字符被視爲「 n」換行

在我的Travis構建過程中,我運行了許多bash腳本來完成各種功能,如基於模板創建文件。但由於昨天的任何迴音或printf的看到的輸出的任何「n」字符爲一個換行符\n

例如:

這種簡單的printf在我的bash腳本:

for line in $(cat $INPUT1); do 
printf "\t\"~${line}\"\t\t$ACTION1\n" >> whateverfile.txt 

我的輸入是定義爲:

ACTION1="0;" 
INPUT1=$TRAVIS_BUILD_DIR/myfile.txt 

特拉維斯打破輸出中包含「n」的任何$ {line}的輸出。

所以例如$ {線}從包含單詞bingbot例如貓語句應輸出如下:

"~bingbot" 0; 

但特拉維斯是這樣做的,因爲它看到的任何n字符作爲線斷裂,這下面是SH運行腳本的輸出-x ./scriptname

bi"\t\t0;\n 

+ printf \t"~gbot 

,並在實際的輸出文件,這是什麼特拉維斯與打印的printf

bi"  0; 
"~gbot 

其他人看到這種行爲?我發推文併發郵件給他們,但沒有回覆。嘗試了各種各樣的事情來解決它,並在某些情況下大寫我的所有變量,輸入,文件名和目錄修復它,但這不是一個解決方案。特拉維斯做了什麼簡單的bash?或者我錯過了什麼。這已經完美工作了一年多。

注:我的默認腳本全部運行使用#!/bin/bash我已經改變它們使用#!/bin/sh,但它仍然在發生。

+0

btw,re:'爲$(cat $ INPUT1)中的行;做' - 見http://mywiki.wooledge.org/DontReadLinesWithFor –

回答