У меня есть 2 виртуальные машины. Один из них - Debian Lenny, а другой - Ubuntu. В разных папках Debian есть скрипт с именем "два" (имя "два" одинаковое, но содержимое в разных папках немного различается), и когда я захожу в эту папку, мне просто нужно ввести два и ввести, чтобы сделать это бежать. Когда я скопировал тот же сценарий в Ubuntu, даже после предоставления ему разрешений на выполнение, он все равно не запускается, просто введя два. Я должен напечатать./ Два, чтобы заставить это работать. Есть ли способ, которым я могу ввести два в их соответствующих папках, и скрипы будут работать без./?
3 ответа
Вы должны добавить программу / каталог в ваш путь.
Путь, заданный в .bash_profile, будет установлен только в оболочке входа bash (bash -l
). Если вы укажете путь в .profile
он будет доступен для всего сеанса рабочего стола. Это означает, что даже metacity будет использовать его.
Например ~/.profile
:
if [ -d "$HOME/bin" ] ; then
PATH="$PATH:$HOME/bin"
fi
Кстати, вы можете проверить переменную PATH процесса, посмотрев его окружение в /proc/[pid]/environ
. (замените [pid] числом из ps axf
)
Вы можете добавить текущий каталог к своему пути:
PATH="$PATH:."
При этом текущий каталог всегда будет в пути поиска оболочки.
Вы можете сохранить это, поместив код выше в ваш .bashrc
или .bash_profile
Вместо добавления. к ПУТИ вам лучше добавить каталог, в котором находится "два". Например, если два действительно /usr /local /bin /two, то вы бы сказали
PATH = $ PATH:/ USR / местные / бен
И если у вас может быть много разных программ, таких как две, то вы, возможно, захотите поместить их все в общий каталог вместо того, чтобы добавлять новый каталог в путь для каждой из них.