我用的是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中用于数学运算的特有符号。本回答被网友采纳
(( ))这种会新建shell运行,结果只在新建shell中有效,执行完毕回到原shell中,变量retnum的值是带不过来的,直接丢失。
改为:
retnum=$((RANDOM%max+min))
这样,返回值能保留在当前shell中。
$(( ))是bash中用于数学运算的特有符号。本回答被网友采纳
第2个回答 2013-12-18
应该没啥大问题,运行不了报什么错误?
可执行文件需要 chmod +x你应该知道的吧追问
可执行文件需要 chmod +x你应该知道的吧追问
chmod +x 已经用过了,没有报错,输出的结果是这样的
floionz@ubuntu:~$ cd dzy
floionz@ubuntu:~/dzy$ ./b.sh
34.html
中间的数没法连到一起,现在是这个问题
正常的输出应该是34333.html一类的,前边是五位数
我这里运行没问题
得到34113.html