鱼壳中重复的字符

时间:2014-07-21 07:14:24

标签: repeat fish

我发现自己需要在脚本中将重复的字符打印到终端输出,所以我得到如下行: =========================

*************************

+++++++++++++++++++++++++

如何在Fish Shell中轻松获得此输出?

4 个答案:

答案 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是必须重复的次数,+是要重复的字符串。