Я понимаю, что .bash_profile
- это скрытый файл, отсюда и период.
Я понимаю, чтобы выполнить скрипт под текущей директорией. Вы должны указать ./
, Но я не уверен, почему, поскольку мы уже находимся в текущем каталоге, а скрипт находится в текущем каталоге.
q1) Почему мы должны все еще ./
? Можем ли мы просто поставить название сценария?
q2) Какая разница между . bash_profile
и . ./.bash_profile
?
.
ссылаясь на текущий каталог или .
= источник?
==================================
Вопросы о дополнениях
Ниже мой путь
[oracle@SJOAM scripts]$ echo $PATH
.:/usr/local/java/bin:/usr/local/java/db/bin:/usr/lib64/qt-3.3/bin:/usr/local/bin:/usr/bin:/bin:/usr/local/sbin:/usr/sbin:/sbin:/home/oracle/bin:/u01/app/oracle/product/11.2.0/dbhome_1/bin:/usr/bin:/bin:/usr/bin/X11:/usr/local/bin:/u01/app/oracle/dba_scripts/bin
Как видите, оно не заканчивается на: и после этого места нет. Я сейчас в каталоге
[oracle@SJOAM bin]$ cd ~/scripts
[oracle@SJOAM scripts]$ pwd
/home/oracle/scripts
[oracle@SJOAM scripts]$ ls
rmanbkp.sh test.sh
Но я все еще могу выполнить test.sh без указания ./test.sh /home /oracle /scripts не находится внутри моего $ PATH
=============================
Q1) Почему я все еще могу выполнить сценарий без указания./?
Q2) Если в моем $ PATH есть каталог, который не существует, будет ли поиск продолжаться через оставшуюся часть PATH?
В3) Имеет ли неправильный каталог в $ PATH = текущий каталог?