将整数作为字符串添加到变量bash中

时间:2012-05-06 21:00:01

标签: string bash int

我想通过向变量添加随机整数来输出字符串以创建字符串。然而,Bash只是将数字加在一起。

#!/bin/bash
b=""
for ((x=1; x<=3; x++))
do
 number=$RANDOM
 let number%=9
 let b+=$number
done
echo ${b}

假设每个随机数为1,脚本将输出3而不是111。 我如何达到111的理想结果?

1 个答案:

答案 0 :(得分:20)

有多种可能性来实现您想要的行为。我们先来看看你做了什么:

let b+=$number

正在运行help let

let: let ARGUMENT...
    Evaluate arithmetic expressions.

这解释了为什么let b+=$number执行12的整数加法(3$numberb)而不是字符串连接

只需删除let,即可显示所需的行为111111

执行字符串连接的另一种方法:

b="$b$number"

是的,只需“让b成为连接bnumber的结果。

作为旁注,b=""相当于b=,因为""已扩展为空字符串。对变量的模块操作可以通过算术扩展来完成:number=$((RANDOM%9))