我有以下printf
功能:
$ printf '%s %s %s\t%s\n' 100644 blob 8e1e f1.txt 100644 blob 9de7 f2.txt | git mktree
Run Code Online (Sandbox Code Playgroud)
谁能解释一下它产生了什么以及为什么?我希望%s
每个参数字符串都有相同数量的格式选项,但我这里有更多的参数字符串。
根据需要多次重复使用该格式以显示所有参数。如果参数太少,缺少的参数将被视为空字符串。
以下是指定两个参数但仅提供一个参数的格式示例:
$ printf '%s ; %s ;\n' a
a ; ;
Run Code Online (Sandbox Code Playgroud)
这是相同的格式,这次提供了太多参数:
$ printf '%s ; %s ;\n' a b c
a ; b ;
c ; ;
Run Code Online (Sandbox Code Playgroud)
这是格式需要四个参数的问题的示例。由于提供了八个参数,因此整个格式使用了两次:
$ printf '%s %s %s\t%s\n' 100644 blob 8e1e f1.txt 100644 blob 9de7 f2.txt
100644 blob 8e1e f1.txt
100644 blob 9de7 f2.txt
Run Code Online (Sandbox Code Playgroud)
从人bash:
根据需要重用该格式以使用所有参数。如果格式需要的参数多于提供的参数,则额外的格式规范的行为就好像提供了零值或空字符串(视情况而定)。成功时返回值为零,失败时非零。
归档时间: |
|
查看次数: |
8290 次 |
最近记录: |