Я хотел, чтобы две печати были переменными в одной строке. Я использую цикл сценария оболочки #!/bin/sh, и то, что я хотел сделать, это повтор 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".
for i in 1 2; do
echo variable${i}_case$i
done
должен делать то, что вы хотите. Замените 1 2 номерами или строками, которые вам нужны. В зависимости от значений $i вам может потребоваться процитировать его так: echo 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
Я предполагаю, что проблема в вашем скрипте заключается в том, что вы пытаетесь встроить имена переменных непосредственно в текстовую строку, чтобы за ними следуют другие символы, которые могут быть частью имени переменной. Они не только включают буквенно-цифровые символы, но и подчеркивание.
Итак, если вы хотите вставлять переменные в строку таким образом, чтобы они не были отделены от остальных пробелами или любым именем без переменной символов, вы можете использовать обозначение имени переменной с фигурными скобками:
$ 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
Я предполагаю, что проблема в вашем скрипте заключается в том, что вы пытаетесь встроить имена переменных непосредственно в текстовую строку, чтобы за ними следуют другие символы, которые могут быть частью имени переменной. Они не только включают буквенно-цифровые символы, но и подчеркивание.
Итак, если вы хотите вставлять переменные в строку таким образом, чтобы они не были отделены от остальных пробелами или любым именем без переменной символов, вы можете использовать обозначение имени переменной с фигурными скобками:
$ 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