==
сравнивает ссылки на объекты в Java и не является исключением для объектов String
.
Для сравнения фактического содержимого объектов (в том числе String
) необходимо использовать equals
.
Если сравнение двух объектов String
с использованием ==
оказывается true
, это связано с тем, что объекты String
были интернированы, а виртуальная машина Java имеет несколько ссылки указывают на тот же экземпляр String
. Не следует ожидать сравнения одного объекта String
, содержащего то же содержимое, что и другой объект String
, используя ==
для оценки как true
.
Это должно быть сделано
printf '%s\n' "$var3" "$var4" "$var1" "$var2" > output.file
Команда printf будет повторно использовать строку формата до тех пор, пока не будут использованы все данные.
Если этого недостаточно, обновите свой вопрос, чтобы представить более четкие требования.