==
сравнивает ссылки на объекты в Java и не является исключением для объектов String
.
Для сравнения фактического содержимого объектов (в том числе String
) необходимо использовать equals
.
Если сравнение двух объектов String
с использованием ==
оказывается true
, это связано с тем, что объекты String
были интернированы, а виртуальная машина Java имеет несколько ссылки указывают на тот же экземпляр String
. Не следует ожидать сравнения одного объекта String
, содержащего то же содержимое, что и другой объект String
, используя ==
для оценки как true
.
Если вы хотите просто вызвать install.sh
или любой другой скрипт с помощью ./, то то же самое должно быть в папке bin Если скрипт находится в любом другом каталоге, то ./
является обязательным.
В Linux, UNIX и связанных с ними операционных системах .
обозначает текущий каталог. Поскольку вы хотите запустить файл в вашем текущем каталоге
, вам нужен бит ./
, чтобы указать оболочке, где находится исполняемый файл.
Итак, ./install.sh
означает запуск исполняемого файла под названием install.sh
, который находится в этом каталоге.
PS: Если ваш текущий словарь зарегистрирован в $ PATH, вам не нужно использовать ./install.sh
, достаточно просто install.sh