Настройка поиска.* Sh файлы catkin
Я следовал учебнику по скину на вики ROS. Я сталкивался с этим: чтобы добавить рабочую область в вашу среду ROS, вам нужно создать сгенерированный установочный файл:
$ . ~/catkin_ws/devel/setup.bash
Мой вопрос: что это за синтаксис? Разве мы не должны использовать исходную команду? Насколько я знаю,. ссылается на текущий каталог. Заранее спасибо.
1 ответ
$ source
bash: source: filename argument required
source: usage: source filename [arguments]
$ help source
source: source filename [arguments]
Execute commands from a file in the current shell.
Read and execute commands from FILENAME in the current shell. The
entries in $PATH are used to find the directory containing FILENAME.
If any ARGUMENTS are supplied, they become the positional parameters
when FILENAME is executed.
Exit Status:
Returns the status of the last command executed in FILENAME; fails if
FILENAME cannot be read.
$ source ~/.bashother # Valid
$ . ~/.bashother # Valid
Как правило, мы проверяем наличие файла перед его поиском:
$ [[ -f ~/.bashother ]] && source ~/.bashother
Я бы порекомендовал вам использовать source
команда вместо .
, Основной причиной этого является удобочитаемость кода и удобство обслуживания.
Используя source
, вы можете легче и точнее находить места в вашей кодовой базе или файловой системе, которые исходные ресурсы, по сравнению с поиском .
, Если у вас возникли проблемы или вам нужно внести изменения, это очень полезно, особенно если вы не единственный участник.
Если вам нужен способ создания файлов ресурсов и их простой источник, вы можете настроить что-то подобное в своем .bashrc
файл:
BASHRCDIR="${HOME}/.bashrc.d"
if [ -d "$BASHRCDIR" ]; then
find $BASHRCDIR/* -executable| while read f;
do
source "${f}"
done
fi
Тогда любой +x
файл в ~/.bashrc.d/
будет загружен. Вы можете поставить имена файлов с префиксами, чтобы обеспечить порядок:
source ~/.bashrc # Source updated .bashrc
mkdir ~/.bashrc.d/
touch ~/.bashrc.d/001-bashother
chmod +x ~/.bashrc.d/001-bashother
source
это не исполняемый файл, аbash
команда.zsh
обеспечивает поиск в текущем каталоге$PATH
когда используешьsource
,.
недопустимо в оболочке C