ubuntu shell脚本文件连接字符串问题

我用的是ubuntu13.04,终端里已经用chmod命令把b.sh设定为可执行文件了
目标是得到一个字符串,“34***.html”(***为随机三位数),程序如下:
#!/bin/sh
min=100
max=899
((retnum=$RANDOM%max+min))
add="34"$retnum".html"
echo $add
输入到终端里能正常运行,但是在脚本文件里就运行不了,请问是因为什么?
好吧,问题提的有点抱歉,不是运行不了,是运行得到的结果不包含随即变量,就只有34.html

第1个回答  2013-12-18
((retnum=$RANDOM%max+min))

(( ))这种会新建shell运行,结果只在新建shell中有效,执行完毕回到原shell中,变量retnum的值是带不过来的,直接丢失。
改为:
retnum=$((RANDOM%max+min))
这样,返回值能保留在当前shell中。
$(( ))是bash中用于数学运算的特有符号。本回答被网友采纳
第2个回答  2013-12-18
应该没啥大问题,运行不了报什么错误?
可执行文件需要 chmod +x你应该知道的吧追问

chmod +x 已经用过了,没有报错,输出的结果是这样的
floionz@ubuntu:~$ cd dzy
floionz@ubuntu:~/dzy$ ./b.sh
34.html

中间的数没法连到一起,现在是这个问题
正常的输出应该是34333.html一类的,前边是五位数

追答

我这里运行没问题
得到34113.html

本回答被提问者采纳

相关了解……

你可能感兴趣的内容

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网