2013-05-10 49 views
0

我在bash如何在bash中复制字符串?

str="kallel" 

我想从strstr2创建以下字符串。该str2包含重复直到长度str = 20。所以结果应该是这样的:

str2="kallelkallelkallelka" 

如何做在bash?

回答

4

这应该工作:

str="kallel" 
str2="${str}" 
while ((${#str2} < 20)) 
do 
    str2="${str2}${str}" 
done 
str2="${str2:0:20}" 
+0

这就是它非常感谢你 – MOHAMED 2013-05-10 14:58:36

+0

行#2('str2 =“$ {str}”')是多余的。 – devnull 2013-05-10 15:08:37

+0

@devnull如何?它将一个变量('$ {str}')的值赋值为循环之前的第二个变量('str2')的初始值......它将循环计数减1,并覆盖之前的值str2 '可能有,避免明确的'str2 =“”'...... – twalberg 2013-05-10 15:10:52

2

我会去一段时间循环,然后在最后削减它。

虽然str2的长度小于20,但请将str添加到str2。 然后,为了好的措施,我们最终裁减到最多20个字符。

#!/bin/bash 
str="kallel" 
str2="" 
while [ ${#str2} -le 20 ] 
do 
    str2=$str2$str 
done 
str2=`echo $str2 | cut -c1-20` 
+0

错误在这行',而[$ {#stringZ} -le 20]''35行:[:缺少']'' – MOHAMED 2013-05-10 14:53:54

+0

应该有在'20'之后和''''之前的空间。固定。 – 2013-05-10 14:55:07

+0

被阻止。看起来像无限循环。 – MOHAMED 2013-05-10 14:57:47