一尘不染

如何在shell中重复破折号(连字符)

linux

如何-在shell中重复n次字符?我已经阅读并尝试过此操作,但这不适用于-。它引发错误invalid option。以下是我使用的确切命令:

printf '-%.0s' {1..100}

原始发布行: printf '-%0.s' {1..100}

我还尝试-通过转义来转义,\但在这种情况下,它会重复\-n次。


阅读 353

收藏
2020-06-07

共1个答案

一尘不染

这将引发错误:

$ printf '-%.0s' {1..100}; echo ""
bash: printf: -%: invalid option
printf: usage: printf [-v var] format [arguments]

在以下情况下可以正常工作bash

$ printf -- '-%.0s' {1..100}; echo ""
----------------------------------------------------------------------------------------------------

对于其他外壳,请尝试:

printf -- '-%.0s' $(seq 100); echo ""

问题是printf期望-启动一个选项。在这种情况下,在Unix / POSIX实用程序中很常见,这--表明printf不要有更多选择。

2020-06-07