Unix printf 沒有如預期格式化字串 - 它而是列印格式化字串

Unix printf 沒有如預期格式化字串 - 它而是列印格式化字串

我想使用以下命令將一些 ENV 變數寫入 .txt 檔案printf(並忽略因未設定 env 變數而為空的行):

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命令不能如預期般運作嗎?

請隨時向我建議其他解決方案。但我也很感興趣為什麼該命令在我的遠端伺服器上不能按預期工作。

相關內容