Я хотел два, печатают к переменным в одной строке. Я использую сценарий оболочки #!/bin/sh
цикл и что я хотел сделать, является a for
повторитесь, который распечатывает что-то как:
variable1_case1
variable2_case2
и я уже попробовал
variable$i_case$i.
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