2014-10-18 99 views
0

我在while循環中運行for循環。bash中for循環的輸出

文件作爲參數傳遞具有內容:

peter 
roger 
casie 

我想創建測試文件A,B,C,d的生存路徑,電子

我期待的輸出是

/peter/a 
/peter/b 

等等。

相反,我得到

/aeter 
/beter 

什麼我需要在這裏明白了嗎?請從下面的代碼 -

CODE:

while read fileLine; do 
    x=$fileLine 
    for i in a b c d e 
    do 
    echo /$x/$i 
    done 
done < $1 
+2

適用於bash 4.2.8和Ubuntu 11.04。 – Cyrus 2014-10-18 20:58:23

回答

1

顯然你的輸入文件使用的\r\n窗戶結束行格式。 read刪除\n但離開\r。當打印字符串/$x/$i時,「回車」將返回到x字符串末尾處的行的開頭,從x的斜槓頂部打印斜線,並在第一個字母x上打印i的字母。

您可以通過更換您的x=$fileLine符合

x=${fileLine%?} 

應刪除的最後一個字符來修復它。

+0

非常感謝ooga! – 2014-10-18 21:05:55