Я работаю 12.04
У меня есть два файла
/usr/bin/uim-tomoe-gtk
~/bin/uim-tomoe-gtk
первая - это программа tomoe kanji
вторая - скрипт, который вместо этого запускает канджипад [ 116]
#!/bin/bash
exec kanjipad $@
exit 0
Теперь я ожидаю, что смогу набрать uim-tomoe-gtk
в терминале и запустить мое приложение канджипад. Но вместо этого появляется программа uim-tomoe-gtk.
Что я делаю неправильно или какую информацию мне нужно предоставить?
Есть две вещи, которые вам нужно сделать.
Во-первых, оболочка не получит ~ / bin / in $ PATH при входе в систему, если она не существует. Вам нужно будет выйти и снова войти в систему после создания каталога или запустить новую оболочку входа с помощью:
/bin/bash -l
или добавить ~ / bin к своему пути вручную с помощью:
export PATH=/home/user/bin:$PATH
[ 116] Во-вторых, оболочка хранит кеш того, где находятся программы. Если вы создаете скрипт в ~ / bin / (или / usr / local /), который скрывает что-то в / usr /, то вы должны вручную обновить кеш. Вы можете полностью очистить его с помощью этой команды, которая должна сделать свое дело:
hash -r
Возможно, проблема в том, что /usr/bin
опережает ~/bin
в вашей PATH, или ~/bin
вообще не в вашей PATH.
Чтобы исправить, поместите эту строку в конец вашего файла .bash_profile:
export PATH=~/bin:$PATH
Тем не менее, имейте в виду, что это будет делать то же самое для других скриптов в папке ~ / bin. Например, если у вас есть /usr/bin/example_command
и ~/bin/example_command
, команда в вашем домашнем каталоге будет иметь приоритет.
Честно говоря, я бы просто переименовал сценарий.