Вывести две переменные в одну строку
Я хотел, чтобы две переменные печатались в одной строке. Я использую скрипт #!/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