我真的沒有找到解決這個問題的方法: 假設我有一個有多行的變量,每行最後應該是一個參數。Bash:將變量內容作爲參數插入命令替換 - 如何正確引用?
line 1
line two
...
我只在運行時獲取這個數據,但它應該是建立這樣一個命令:
answer="$(dialog --menu 'Menu title' 0 0 0 'line 1' - 'line two' - ... 3>&1 1>&2 2>&3)"
(數據必須由分離 - 但這不是問題。)
我想我真的嘗試過所有可能的組合,但它不會奏效。我檢查這個網站已經但是我>想<它沒有提供一個解決我的問題:http://mywiki.wooledge.org/BashFAQ/050
我應該嘗試切換的分詞?
這是我的代碼,截至目前:
list=""
while read p; do
list="$list '$p' - "
done <<< $line_separated_input
answer="$(dialog --menu 'Chosse sth' 0 0 0 $list 3>&1 1>&2 2>&3)"
使用數組也沒有工作(如(5)這裏建議:https://superuser.com/a/360986):(如何停止的報價裏面的東西字分裂,即使這個報價東西插入,因爲變量替換
編輯:謝謝大家,引用$line_separated_input
是解決方案的一部分與數組列表,而不是一個變量一起使用它,終於解決了我的問題 您可以檢查。對於你自己來說,進行額外的命令替換會讓事情變得更糟DER:
> list="'a a' 'b c'"; echo "$(echo $list)"
'a a' 'b c'
> list="'a a' 'b c'"; echo "$(echo "$list")"
'a a' 'b c'
兩人都沒有預期的輸出。這是隻有我做到以下幾點:
> list=('a a' 'b c'); echo "$(echo "${list[@]}")"
a a b c
Tadaa!謝謝大家:)
'tr'\ n'' - '<<<「$ line_separated_input」'爲您工作嗎? – mustaccio
只要用引號! '...完成<<<「$ line_separated_input」***與報價!!! *** –