2016-06-18 19 views
1

我遇到了一個奇怪的情況。我在RHEL 6.3上。我正嘗試使用內置的「讀取」命令來讀取數組中文件中的行並對其進行處理。linux內置讀命令標誌

在我的劇本,我使用

while IFS=" " read -r -a appInfo 
do 
    echo "4 ${appInfo[0]}" 
    echo "4 ${appInfo[1]}" 
    echo "4 ${appInfo[2]}" 
    echo "4 line *{appInfo[@]}" 
    currentApp="${appInfo[*]}" 
..... 
done < details.txt 

它工作正常,當我在命令行中執行腳本。讀命令顯示以下信息

read: usage: read [-ers] [-a array] [-d delim] [-i text] [-n nchars] [-N nchars] [-p prompt] [-t timeout] [-u fd] [name ...] 

如果我在命令行做read --version,我得到

命令行版本讀取(AT & T研究所)2006-12-19

但是,當我嘗試執行Bamboo項目中完全相同的腳本,讀命令生成錯誤

read: -a: unknown option 
Usage: read [-ACprsv] [-d delim] [-u fd] [-t timeout] [-n nchar] [-N nchar] 
      [var?prompt] [var ...] 

竹:版本讀取(AT & T研究所)2006-12-19

因此,如果版本顯示相同的,爲什麼這些標誌表明不同?

可能是什麼問題。我怎樣才能解決這個問題,以便即使在從Bamboo計劃運行時也可以將該行讀入數組中?

+1

RHEL 6.3已達到[end-of-life](https://access.redhat.com/support/policy/updates/errata)。由於目前的系統比舊系統的bug更少,是否有一個不升級的理由? – John1024

+0

不確定。這個決定是由我們的運營團隊做出的,我們通常沒有任何權重。 :(但在這種情況下,爲什麼行爲有差異? – adbdkb

+0

我不使用RHEL /竹子,但是通過'read'幫助消息判斷,它看起來像我的命令行腳本在'bash ''而腳本運行'ksh' – John1024

回答

1

感謝@ John1024,我能夠通過更改#來解決問題!從#!/ bin/sh(它運行默認的ksh shell)到#!/ bin/bash。

解決方案的功勞歸於@ John1024,只是將其作爲答案,以便將其標記爲問題的解決方案。