【发布时间】:2021-08-01 07:45:16
【问题描述】:
我有一个简单的程序来打印 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$
【问题讨论】:
-
许多不同之处。例如,
printf将第一个参数解释为格式说明符。当您使用示例脚本执行./args '%s %sx y` 时,您可以看到效果。
标签: shell zsh command-line-arguments parameter-expansion