【问题标题】:Why this bash string concatenation fails?为什么这个 bash 字符串连接失败?
【发布时间】:2019-07-22 19:05:46
【问题描述】:
#!/bin/sh

VAR_A=100
VAR_B=200

FOO="$VAR_A_$VAR_B"; # 200
BAZ="$VAR_Ax$VAR_B"; # 200

echo $FOO; # 200 instead of 100_200
echo $BAZ; # 200 instead of 100x200

我认为它应该起作用的原因是我将它视为 srinf 或任何类似 C 的字符串格式化程序(%s_%s 或 %sx%s)

【问题讨论】:

  • bash 无法弄清楚变量名是什么。试试${VAR_A}_${VAR_B}
  • 还要养成在使用变量时引用变量的习惯:echo "$FOO"

标签: string bash concatenation


【解决方案1】:

问题在于_ 是变量名中的有效字符。为了区分这一点,请使用大括号:

FOO="${VAR_A}_$VAR_B"

为了保持一致性,您可以在任何地方使用大括号:

FOO="${VAR_A}_${VAR_B}"

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-07-21
    • 1970-01-01
    • 2017-11-24
    • 2017-09-25
    • 2010-12-31
    相关资源
    最近更新 更多