我怎样才能在Bash中重复一个角色?我怎样才能在Bash中重复一个角色?我怎么能这样做echo?perl -E 'say "=" x 100'
3 回答
翻过高山走不出你
TA贡献1875条经验 获得超3个赞
您可以使用:
printf '=%.0s' {1..100}
这是如何工作的:
Bash扩展{1..100},因此命令变为:
printf '=%.0s' 1 2 3 4 ... 100
我已经设置了printf的格式,=%.0s
这意味着=
无论给出什么参数,它总是会打印一个。因此它打印100 =
秒。
忽然笑
TA贡献1806条经验 获得超5个赞
没有简单的方法。但是例如:
seq -s= 100|tr -d '[:digit:]'
或者也许是符合标准的方式:
printf %100s |tr " " "="
还有一个tput rep
,但至于手头的终端(xterm和linux)他们似乎不支持它:)
函数式编程
TA贡献1807条经验 获得超9个赞
有不止一种方法可以做到这一点。
使用循环:
大括号扩展可以与整数文字一起使用:
for i in {1..100}; do echo -n =; done
类似C的循环允许使用变量:
start=1end=100for ((i=$start; i<=$end; i++)); do echo -n =; done
使用printf
内置:
printf '=%.0s' {1..100}
在此处指定精度会截断字符串以适合指定的宽度(0
)。由于printf
重用格式字符串消耗所有的参数,这只是简单地打印"="
100次。
使用head
(printf
等)和tr
:
head -c 100 < /dev/zero | tr '\0' '='printf %100s | tr " " "="
添加回答
举报
0/150
提交
取消