我发现自己需要在脚本中将重复的字符打印到终端输出,所以我得到如下行:
=========================
*************************
+++++++++++++++++++++++++
如何在Fish Shell中轻松获得此输出?
答案 0 :(得分:2)
我经常需要这个,所以我最终编写了一个非常简单的函数do_str
,它重复给定字符串一定次数。
在config.fish中粘贴下面的代码(并重新加载shell)就足够了:
function do_str #defines the function, you can use any other name for it
for i in (seq $argv[2]) #starts a for loop that will repeat as many times as second argument given
printf $argv[1] #prints the first argument given (the string)
end
end
正在运行do_str = 4
会产生====
,do_str "?.!" 4
会产生?.!?.!?.!?.!?.!
NB 如果您需要打印百分号,则必须避开双百分号 AND 以逃避第一个百分号,因此要获得%%%%%%
您必须致电do_str \%% 6
答案 1 :(得分:2)
function underline -a char -a length
printf '%*s\n' $length "" | tr ' ' $char
end
underline = 8
========
这利用了printf的可变长度格式,以及空格的默认字段填充。
答案 2 :(得分:2)
seq
命令用于执行此类操作:
$ seq -f '' -s= 20
====================
$ seq -f '' -s+ 20
++++++++++++++++++++
$ seq -f '' -s+ 5
+++++
但注意:
字符串后面没有换行符。
您可以使用-t
标志添加它:
$ seq -f '' -s+ -t\n 5
+++++
答案 3 :(得分:1)
在鱼3中:
string repeat -n80 +
-n
是必须重复的次数,+
是要重复的字符串。