0
在Ubuntu-14.04,庆典-4.3.11,我运行此:使得bash的printf考虑数组作为一个参数
$ _array=(1 2 3)
$ echo "${_array[@]} bloup"
1 2 3 bloup
$ printf "%s bloup\n" "${_array[@]}"
1 bloup
2 bloup
3 bloup
- 我怎样才能让printf的的行为回波在这种情况呢?
- 为什么printf认为双引号的数组作为三个参数?即我在这里错过了什么扩张机制?
作为一种变通方法,我用这个:
$ _string=${_array[@]}
$ printf "%s bloup\n" "$_string"
1 2 3 bloup
如果你使用它双引号'[*]',它会扩展为单个参数。 'printf'%s bloup \ n“”$ {_ array [*]}“' – eckes