#!/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
我认为它应该起作用的原因是我将其视为sprinf或任何类似C的字符串格式化程序(%s_%s或%sx%s)
答案 0 :(得分:2)
问题在于_
是变量名中的有效字符。为了区分这一点,请使用花括号:
FOO="${VAR_A}_$VAR_B"
为了保持一致,您可以在任何地方使用花括号:
FOO="${VAR_A}_${VAR_B}"