0
auf ubuntu-14.04 betrachten, bash-4.3.11, ich laufe dies:make bash printf Array als ein Argument
$ _array=(1 2 3)
$ echo "${_array[@]} bloup"
1 2 3 bloup
$ printf "%s bloup\n" "${_array[@]}"
1 bloup
2 bloup
3 bloup
- Wie kann ich printf machen behave als Echo in dieser Situation?
- Warum berücksichtigt printf das doppelt zitierte Array als drei Argumente? d. h. welcher Expansionsmechanismus fehlt mir hier?
Als Abhilfe können, verwende ich diese:
$ _string=${_array[@]}
$ printf "%s bloup\n" "$_string"
1 2 3 bloup
Wenn Sie es doppelt mit '[*] zitieren, wird es zu einem einzigen Argument erweitert. 'printf"% s bloup \ n "" $ {_ array [*]} "' – eckes