Распечатайте две переменные в одной строке

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

variable1_case1
variable2_case2

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

variable$i_case$i.
2
задан 13 September 2017 в 19:09

3 ответа

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

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

5
ответ дан 2 December 2019 в 01:29

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

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

$ i=42
$ echo "variable${i}_case${i}."
variable42_case42.
4
ответ дан 2 December 2019 в 01:29

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

#!/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
0
ответ дан 2 December 2019 в 01:29

Другие вопросы по тегам:

Похожие вопросы: