bash: ./home/abcdef/Desktop/jikesrvm/dist/production_x86_64-linux/rvm: No such file or directory
rvm это файл bash, и он работает нормально, когда я пытаюсь запустить его из его собственной папки (production_x86_64-linux). Он также отлично работает, если я попытаюсь запустить его, например, при открытии терминала в его родительской папке или даже в родительской папке.
Я проверил это с помощью dos2unix на всякий случай, и я также проверил его разрешения на выполнение, которые, похоже, в порядке.
оболочка всегда будет лечить . перед путем указывается текущий каталог, и, следовательно, путь всегда будет относительным путем. Итак, оболочка пытается найти исполняемый файл в расположении:
Или даже просто имя скрипта, если каталог, содержащий скрипт, находится в PATH переменная среды.
Теперь, если ваш сценарий Не исполнимый, вы тоже можете запустить его не превращая его в исполняемый файл сообщив оболочке, какая программа будет обрабатывать сценарий, т.е. предоставив сценарий в качестве аргумента для bash (оболочка):
Когда вы используете ./ чтобы выполнить файл, он будет выглядеть в текущей папке (.) для папки с именем home вместо того, чтобы начинать с корня (/) каталог.
Используя bash команда явно, как в ответе Больцано, начинается с корневого каталога, а не с того, в котором вы находитесь.
Чтобы использовать команду без bash вы могли бы войти
В дополнение к другим ответам То, что ты попробовал, было почти в порядке... Но вы забыли добавочный номер .sh - В твоем случае ./home/abcdef/Desktop/jikesrvm/dist/production_x86_64-linux/rvm.sh - или cd /home/abcdef/Desktop/jikesrvm/dist/production_x86_64-linux ./rvm.sh