我有一个简单的程序可以在 zsh 中打印命令行参数。但是,我看到 printf 与 echo 的行为不同。谁能解释一下?
#!/bin/zsh
echo "$# @ : "$@" "
printf "\n"
printf "$# * $* "
printf "\n"
printf "$# @ : "$@" \n"
输出:
batman$ ./args a b c d
4 @ : a b c d
4 * a b c d
4 @ : abatman$ //also gobbles up the newline!!
batman$