我使用bash創建一個輸出一組值(每行一個)的腳本,然後運行它,然後將輸出放入數組中。我想將空行保留爲空數組元素,因爲空值仍然是一個值,並且這是匹配我期待返回的值列表的唯一方法。如何在將命令讀入bash數組的同時保留空行?
所以以下的bash代碼:
> IFS=$'\n'
> foo=($(echo 'foo bar'; echo; echo; echo baz))
> echo ${#foo[@]}
2
我期望看到4個輸出,因爲有輸出的四行。相反,只有包含某些東西的行被包含在內,所以數組中只有兩個值。
下的替代品並沒有幫助:
> foo=(`echo 'foo bar'; echo; echo; echo baz`)
> echo ${#foo[@]}
2
> foo=("$(echo 'foo bar'; echo; echo; echo baz)")
> echo ${#foo[@]}
1
如何才能做到這一點?
是否http://stackoverflow.com/questions/ 20776911/bash-read-line-and-keep-spaces有幫助嗎? –
什麼版本的'bash'? – chepner
我正在研究RHEL 6,所以Bash 4.1。 – sosiouxme