在一行中打印两个变量

在一行中打印两个变量

我想在一行中打印两个变量。我正在使用 shell 脚本#!/bin/sh循环,我想要做的是for重复打印出类似以下内容的内容:

variable1_case1
variable2_case2

我已经尝试过了

variable$i_case$i.

答案1

for i in 1 2; do
  echo variable${i}_case$i
done

应该可以满足您的要求。1 2用您需要的数字或字符串替换。根据的值,$i您可能需要像这样引用它:echo variable"$i"_case"$i"

答案2

我认为您脚本中的问题在于您尝试将变量名称直接嵌入文本字符串中,因此它们后面跟着其他字符,这些字符可能是变量名称的一部分。这些字符不仅包括字母数字字符,还包括下划线。

因此,如果您想将变量嵌入到字符串中,使它们不被空格或任何非变量名字符与其他变量分隔,则可以使用带有花括号的变量名表示法:

$ i=42
$ echo "variable${i}_case${i}."
variable42_case42.

答案3

也许我误解了你的意思,但是你想要这样的东西吗:

#!/bin/sh
while read a b; do
    echo variable:${a}_case:${b}
done

这将创建以下输出:

/tmp/test.sh < /tmp/dat1 
variable:1_case:2
variable:3_case:4

数据文件 dat1 包含:

1 2
3 4

相关内容