Вывести две переменные в одну строку

Я хотел, чтобы две переменные печатались в одной строке. Я использую скрипт #!/bin/sh цикл и то, что я хотел сделать, это for повторить что печатает что-то вроде:

variable1_case1
variable2_case2

и я уже попробовал

variable$i_case$i.

3 ответа

Решение
for i in 1 2; do
  echo variable${i}_case$i
done

должен делать то, что вы хотите. Замена 1 2 с числами или строками, которые вам нужны. В зависимости от значений $i вам может понадобиться процитировать это так: echo variable"$i"_case"$i",

Я предполагаю, что проблема в вашем скрипте заключается в том, что вы пытаетесь встроить имена переменных непосредственно в текстовую строку, чтобы за ними следовали другие символы, которые могли бы быть частью имени переменной. Они включают в себя не только буквенно-цифровые символы, но и подчеркивание.

Поэтому, если вы хотите встроить переменные в строку таким образом, чтобы они не отделялись от остальных пробелами или любыми символами без имени переменной, вы можете вместо этого использовать обозначение имени переменной с помощью фигурных скобок:

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

Может быть, я получил неправильный конец палки, но вы хотите что-то вроде этого:

#!/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
Другие вопросы по тегам