Unix printf 不会按预期格式化字符串 - 而是打印格式化字符串

Unix printf 不会按预期格式化字符串 - 而是打印格式化字符串

我想用以下命令将一些 ENV 变量写入 .txt 文件printf(并忽略由于未设置环境变量而为空的行):

printf '%-79s' "${foo1}${bar1}" | grep -v '^\s\{79\}' >> foobar.txt
printf '%-79s' "${foo2}${bar2}" | grep -v '^\s\{79\}' >> foobar.txt
...

在我的本地 WSL 和 Docker 环境 (centos 7) 上,它按预期工作。但在脚本应运行的服务器上,它仅79s在 foobar.txt 文件中打印:

cat foobar.txt
79s
79s

有人知道为什么该printf命令没有按预期工作吗?

请随意向我提出其他解决方案。但我也非常想知道为什么该命令在我的远程服务器上无法按预期工作。

相关内容