2013-05-10 48 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