我怎么用echo来做呢?
perl -E 'say "=" x 100'
我怎么用echo来做呢?
perl -E 'say "=" x 100'
当前回答
#!/usr/bin/awk -f
BEGIN {
OFS = "="
NF = 100
print
}
Or
#!/usr/bin/awk -f
BEGIN {
while (z++ < 100) printf "="
}
例子
其他回答
最简单的方法是在csh/tcsh中使用这一行代码:
printf "%50s\n" '' | tr '[:blank:]' '[=]'
我猜这个问题的最初目的是仅用shell的内置命令来完成这个任务。因此,for循环和printfs是合法的,而下面的rep、perl和jot则不是。但是,下面的命令
$((COLUMNS/2))
例如,打印的窗户完全线 \/\/\/\/\/\/\/\/\/\/\/\/
建议的Python解决方案的更优雅的替代方案可能是:
python -c 'print "="*(1000)'
这是以利亚·卡根所支持的观点的长版本:
while [ $(( i-- )) -gt 0 ]; do echo -n " "; done
当然,你也可以使用printf,但不是我喜欢的:
printf "%$(( i*2 ))s"
这个版本与Dash兼容:
until [ $(( i=i-1 )) -lt 0 ]; do echo -n " "; done
I是初始数。
有不止一种方法。
使用循环:
大括号展开可用于整型字面值: 对于I在{1..100};执行echo -n =;完成 类c循环允许使用变量: 开始= 1 结束= 100 ((我= $开始;我< = $结束;我+ +));执行echo -n =;完成
使用内置的printf:
printf '=%.0s' {1..100}
在这里指定精度将截断字符串以适应指定的宽度(0)。当printf重用格式字符串以使用所有参数时,这将简单地打印"=" 100次。
使用head (printf, etc)和tr:
head -c 100 < /dev/zero | tr '\0' '='
printf %100s | tr " " "="