Это беспокоило меня очень долгое время, и я действительно устал от этого. Например, есть скрипт под названием testscript, который сравнивает два каталога. В классе профессор может просто ввести
testscript dir1 dir2
чтобы получить вывод, но мне нужно добавить ./ перед тестскриптом и нажать Enter. Затем введите dir1 и dir2 в следующей строке
Как профессор это сделал? Что-то с bashrc? Я никогда не понимаю, как это работает. Если это связано, пожалуйста, объясните простым языком, так как я новичок в Linux. Спасибо!
решение1
Вам необходимо добавить каталог с вашим скриптом в PATH
переменную:
export PATH="$PATH:/path/to/dir"
или вы даже можете добавитьтекущийкаталог в PATH
:
export PATH="$PATH:."
У последнего есть некоторыенедостаток безопасностихотя.
решение2
Другой способ сделать это — добавить псевдоним в файл bashrc:
vim ~/.bashrc
Вот как выглядит мой файл bashrc:
# .bashrc
alias coredb='psql -h 172.x.x.x -U jboss jbossdb'
alias psql='psql -h 172.x.x.x -U rkah portal_db'
alias opendb='psql -h 172.x.x.x -U rkah portal_db'
# Source global definitions
if [ -f /etc/bashrc ]; then
. /etc/bashrc
fi
# User specific aliases and functions
alias menu='bash ./menuScript.sh'
alias vi='vim'
Если вы посмотрите, где написано alias, то это именно то, как вы можете его добавить. Так, например, вы должны ввести:
alias testscript='bash ./testscript.sh'
решение3
В конце файла необходимо поместить следующую строку .bashrc
:
PATH=$PATH:.
Для этого вы можете ввести следующую команду:
echo "PATH=$PATH:." >> ~/.bashrc
Затем вам следует запустить новую оболочку, чтобы все заработало.
решение4
Другая альтернатива, которую вы можете рассмотреть, — это собрать эти специальные исполняемые скрипты и программы в один каталог и поместить его в оператор PATH. Таким образом, вам не придется использовать ужасную '.' (точку) в переменной PATH, но это все равно сделает то, что вам нужно.