0

长话短说: printf 正在向数字添加零,而不是让数字替换它们。

更多细节:

我目前正在尝试在我的 Ubuntu 操作系统上使用 Bash 来执行一系列包含对我的数据库查询的分解文件。

这些文件被分解为如下所示:

x0000000000
x0000000001
x0000000002
etc.

我正在制作一个小脚本,通过使用 Bash 的 printf 的填充零函数来运行这些文件。

我的脚本看起来和我在 Google 上搜索过和看到的所有脚本一样,但结果却不同。

这是我的脚本:(不是用于查询的脚本,而是用于获取文件名的脚本)

for i in {0..10};
do
printf "x%010d"$i;
done

应该是这样的:

x0000000000
x0000000001
x0000000002
x0000000003
x0000000004
x0000000005
x0000000006
x0000000007
x0000000008
x0000000009
x0000000010

而是像这样出来:

x00000000000
x00000000001
x00000000002
x00000000003
x00000000004
x00000000005
x00000000006
x00000000007
x00000000008
x00000000009
x000000000010

它纯粹是向数字添加零,而不是替换它们的数字。

如果我无意中打开了某些设置、做错了什么或有错误,有人可以告诉我吗?

4

1 回答 1

2

您需要一个空格,否则会发生串联:

printf "x%010d" $i;
               ^
于 2013-01-15T23:14:54.327 回答