我怎样才能在Bash中重复一个角色?

我怎样才能在Bash中重复一个角色?我怎样才能在Bash中重复一个角色?

我怎么能这样做echo

perl -E 'say "=" x 100'


慕田峪4524236
浏览 480回答 3
3回答

翻过高山走不出你

您可以使用:printf '=%.0s' {1..100}这是如何工作的:Bash扩展{1..100},因此命令变为:printf '=%.0s' 1 2 3 4 ... 100我已经设置了printf的格式,=%.0s这意味着=无论给出什么参数,它总是会打印一个。因此它打印100 =秒。

忽然笑

没有简单的方法。但是例如:seq -s= 100|tr -d '[:digit:]'或者也许是符合标准的方式:printf %100s |tr " " "="还有一个tput rep,但至于手头的终端(xterm和linux)他们似乎不支持它:)

函数式编程

有不止一种方法可以做到这一点。使用循环:大括号扩展可以与整数文字一起使用:for&nbsp;i&nbsp;in&nbsp;{1..100};&nbsp;do&nbsp;echo&nbsp;-n&nbsp;=;&nbsp;done类似C的循环允许使用变量:start=1end=100for&nbsp;((i=$start;&nbsp;i<=$end;&nbsp;i++));&nbsp;do&nbsp;echo&nbsp;-n&nbsp;=;&nbsp;done使用printf内置:printf&nbsp;'=%.0s'&nbsp;{1..100}在此处指定精度会截断字符串以适合指定的宽度(0)。由于printf重用格式字符串消耗所有的参数,这只是简单地打印"="100次。使用head(printf等)和tr:head&nbsp;-c&nbsp;100&nbsp;<&nbsp;/dev/zero&nbsp;|&nbsp;tr&nbsp;'\0'&nbsp;'='printf&nbsp;%100s&nbsp;|&nbsp;tr&nbsp;"&nbsp;"&nbsp;"="
打开App,查看更多内容
随时随地看视频慕课网APP