
Я запускаю довольно сложный скрипт, который меняет каталоги и запускает много других команд. Все эти команды запускаются с использованием 'scriptname', что отлично работает, когда я запускаю основной скрипт из терминала. Однако иногда мне приходится подключаться по ssh к серверу и запускать основной скрипт оттуда, но это не получается, так как перед каждой командой нет ./.
Я бы предпочел не просматривать все скрипты и исполняемые файлы и не добавлять ./ к командам, так есть ли другой способ решить эту проблему?
решение1
Есть способы изменить это поведение, включая добавление ./
в переменную окружения PATH, но это представляет серьезную угрозу безопасности для вашей среды. Способ написания ваших скриптов действительно неправильный, и правильным решением будет просмотреть их все и исправить способ вызова локальных скриптов. Это единственное правильное исправление, которое не создаст дополнительных проблем в будущем и проблем безопасности для вас. Я знаю, что это не то, что выв розыскеуслышать, но стиснуть зубы и сделать все правильно.
решение2
если ваши скрипты находятся в /opt/housekeeping/bin, я предлагаю вам добавить
export PATH=$PATH:/opt/housekeeping/bin
в ваш .bash_profile или .profile или любой другой используемый вами скрипт входа и убедитесь, что для этих скриптов также установлены права доступа 755.
решение3
Вы можете создать псевдоним для своего скрипта:
alias scriptfile="./scriptfile"