#!/usr/bin/env bash
$ a=("1st" "2nd")
$ echo "${a[*]}"
> 1st 2nd
$ echo "${a[@]}"
> 1st 2nd
$ printf "${a[*]}\n"
> 1st 2nd
$ printf "${a[@]}\n"
> 1st
为什么最后printf
命令失败?
答案 0 :(得分:4)
您应该向printf command
提供格式:
printf "%s\n" "${a[@]}"
当您printf
使用printf "${a[@]}\n"
时,它等同于:
printf "1st" "2nd\n"
由于第一个参数中没有可识别的格式,因此只打印文字1st
。