[Bash]關于bash版本發(fā)生的數(shù)組輸出BUG問題

一個奇怪的問題:

#!/bin/bash
set -x
function run {
    local table_arr=(
    "movie"
    "tvplay"
    "comic"
    "shows"
    )

    for val in ${table_arr[@]}; do
        echo $val
    done
}

run
echo ${table_arr[1]}

最終輸出

+ run
+ local 'table_arr=(movie tvplay comic shows)'
+ for val in '${table_arr[@]}'
+ echo '(movie'
(movie
+ for val in '${table_arr[@]}'
+ echo tvplay
tvplay
+ for val in '${table_arr[@]}'
+ echo comic
comic
+ for val in '${table_arr[@]}'
+ echo 'shows)'
shows)
+ echo

可以發(fā)現(xiàn) movie和shows輸出并不正確,
但是如果去掉local關鍵字之后,就沒有這個問題了,很奇怪。

之后我在另外一臺機器測試了一下,沒有這個問題
于是對比了一下兩臺機器bash的版本發(fā)現(xiàn),

# 有bug的機器
$bash --version
GNU bash(bdsh), version 3.00.22(2)-release (x86_64-redhat-linux-gnu)
Copyright (C) 2004 Free Software Foundation, Inc.

# 無bug的
$ bash --version
GNU bash(bdsh), version 4.1.17(2)-release (x86_64-unknown-linux-gnu)
Copyright (C) 2009 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>

This is free software; you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.

最終發(fā)現(xiàn)是版本的問題,更新就OK了

最后編輯于
?著作權歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

友情鏈接更多精彩內(nèi)容