代码之家  ›  专栏  ›  技术社区  ›  lanselibai

如何将数字保存到变量,然后输出该值?

  •  0
  • lanselibai  · 技术社区  · 7 年前

    我想用 grep 计算 W 出现在 file.txt ,另存为变量 WATER_NUMBER . 然后把这个号码附加到 TXT文件 .

    跟随 here ,

    我试过

    #!/bin/bash -l
    WATER_NUMBER="$(grep -c W file.txt)"
    sed -i -e '$a\"${WATER_NUMBER}"' file.txt
    

    但我得到了 "${WATER_NUMBER}" 打印出来,而不是数字。我能问一下如何修改它吗?

    2 回复  |  直到 7 年前
        1
  •  1
  •   Stefan Hamcke    7 年前

    命令

    sed -i '$a\"${WATER_NUMBER}"' file.txt
    

    只需添加行 "${WATER_NUMBER}" 在文件的末尾。你可以试试

    sed -i "$ a\$WATER_NUMBER" file.txt
    

    但这仍然会增加这一行 $WATER_NUMBER .问题是,在SED脚本中,变量water_编号没有扩展。为了将其值传递给sed,请将其放在引用之外,如下所示

    sed -i '$ a\'$WATER_NUMBER file.txt
    

    编辑: 事实上,我昨天写了我的答案,但没有真正考虑变量为什么没有展开的原因。今天早上,我想知道为什么会出现这种情况,即使变量是双引号,而不是单引号。原因其实只是巧合 \ 来自append命令的 $ 从变量中,从而对其进行转义。为了防止这种情况,你需要逃离 \ . 另一方面,实际上不需要反斜杠来分隔 a 从要添加的行,因此

    sed -i "$ a $WATER_NUMBER" file.txt
    

    会完成任务的。

        2
  •  1
  •   jschnasse    7 年前

    如何将数字保存到变量中?

    WATER_NUMBER=42
    

    如何将变量内容附加到文件中?

    echo $WATER_NUMBER >> file.txt
    
    推荐文章