【问题标题】:Add integers as strings to a variable bash将整数作为字符串添加到变量 bash
【发布时间】:2012-05-06 21:00:00
【问题描述】:

我想通过将随机整数添加到变量来创建字符串来输出字符串。然而,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 的预期效果?

【问题讨论】:

    标签: string bash int


    【解决方案1】:

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

    let b+=$number
    

    运行help let

    let: let ARGUMENT...
        Evaluate arithmetic expressions.
    

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

    只需删除let,就会出现所需的行为111111

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

    b="$b$number"
    

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

    附带说明,b="" 等效于 b=,因为 "" 被扩展为空字符串。对变量的模块操作可以通过算术扩展来完成:number=$((RANDOM%9))

    【讨论】:

    • 你也可以像这样进行算术扩展:((number = RANDOM % 9))
    猜你喜欢
    • 1970-01-01
    • 2023-03-30
    • 1970-01-01
    • 2017-09-09
    • 1970-01-01
    • 2020-01-28
    • 1970-01-01
    • 2013-11-25
    • 2017-04-03
    相关资源
    最近更新 更多