Shell中能否让一个已定义的变量重复若干次?

sh/bash/dash/ksh/zsh等Shell脚本
回复
bacoo_zh
帖子: 19
注册时间: 2009-05-09 16:01

Shell中能否让一个已定义的变量重复若干次?

#1

帖子 bacoo_zh » 2009-06-16 1:16

就像在python中'abc'*2即是'abcabc',那在shell中是否有这种扩展?我查阅了很多Shell的扩展都没有找到对应该需求的答案。

如果实在没有这样的shell扩展,那么大家给一种解法也好,怎样重复一个变量多次?(for循环就不必了)

多谢各位高手:-)
头像
eexpress
帖子: 58428
注册时间: 2005-08-14 21:55
来自: 长沙

Re: Shell中能否让一个已定义的变量重复若干次?

#2

帖子 eexpress » 2009-06-16 8:44

b=$a$a

☎ a='ssx';b=$a$a; echo $b
ssxssx
● 鸣学
头像
lululau
帖子: 105
注册时间: 2007-05-28 11:17

Re: Shell中能否让一个已定义的变量重复若干次?

#3

帖子 lululau » 2009-06-16 8:44

var=$(echo $str | sed 's/.*/&&&/'),重复几次就几个&符号

或者shell里面也可以调Python的说:

var=$(python -c "print '$str'*3")
bacoo_zh
帖子: 19
注册时间: 2009-05-09 16:01

Re: Shell中能否让一个已定义的变量重复若干次?

#4

帖子 bacoo_zh » 2009-06-16 22:53

lululau 写了:var=$(echo $str | sed 's/.*/&&&/'),重复几次就几个&符号

或者shell里面也可以调Python的说:

var=$(python -c "print '$str'*3")
我就是用通过调用python实现的,你上面说的那种用sed的方法也不错,不过如果我需要重复30次,那么写30个&符号未免也太累了,呵呵。

大家再想想,在shell中到底有没有 复制一个变量 指定次数的方法。
头像
xiooli
帖子: 6956
注册时间: 2007-11-19 21:51
来自: 成都
联系:

Re: Shell中能否让一个已定义的变量重复若干次?

#5

帖子 xiooli » 2009-06-16 23:15

代码: 全选

while [ "${i:-1}" -lt num ];do a+=$a;((i++));done
头像
eexpress
帖子: 58428
注册时间: 2005-08-14 21:55
来自: 长沙

Re: Shell中能否让一个已定义的变量重复若干次?

#6

帖子 eexpress » 2009-06-17 9:29

用这么久机器了,可没见过有重复那么多的需要。估计lz思维短路了。
● 鸣学
头像
lululau
帖子: 105
注册时间: 2007-05-28 11:17

Re: Shell中能否让一个已定义的变量重复若干次?

#7

帖子 lululau » 2009-06-17 10:14

:em04

还有一着,按住Meta的同时按1000,然后松开Meta,按a,就会在终端上输入1000个a,
七分之雨后
帖子: 39
注册时间: 2007-07-26 14:25

Re: Shell中能否让一个已定义的变量重复若干次?

#8

帖子 七分之雨后 » 2009-07-09 17:01

你这个是一个字符串重复复制多次;
python有简便写法,毕竟这种语言就是为方便设计的,不然怎么叫懒人语言;
shell估计没有,所以用循环是必须的了;
tusooa
帖子: 6548
注册时间: 2008-10-31 22:12
系统: 践兔
联系:

Re: Shell中能否让一个已定义的变量重复若干次?

#9

帖子 tusooa » 2009-07-24 0:10

lululau 写了::em04

还有一着,按住Meta的同时按1000,然后松开Meta,按a,就会在终端上输入1000个a,

代码: 全选

24/07/2009 00:12:30
tusooa (~)
>> 5a
bash: 5a:找不到命令
24/07/2009 00:12:47
tusooa (~)
>>
24/07/2009 00:12:47
tusooa (~)
>> echo 5a
5a
24/07/2009 00:13:13
tusooa (~)
>>

代码: 全选

] ls -ld //
tubunu
帖子: 34
注册时间: 2009-07-13 11:49

Re: Shell中能否让一个已定义的变量重复若干次?

#10

帖子 tubunu » 2009-07-24 12:40

用perl试试:

代码: 全选

test="x"
echo $test
perl -e 'print "'"$test"'"x20,"\n"'
20就是重复'x'的重复次数
回复