1

У меня есть два файла, которые я хотел бы вызвать из любого из нескольких рабочих каталогов на моем компьютере, поэтому я добавил их в папку с ресурсами, которые я добавил к своему пути (а затем отправил source .bash_profile и подтвердил с помощью echo $PATH).

Во-первых, скрипт Python, с которым у меня не было проблем. which myscript.py находит и печатает полный путь myscript.py

Другой - это Tex-файл, и which mytex.py ничего не возвращает. Другие текстовые файлы в этой папке имеют тот же результат, и я думаю, что это связано с тем, что они являются неисполняемыми файлами.

Есть ли способ добавить Tex и текстовые файлы, чтобы их можно было вызывать из других каталогов, не вводя полный путь?

2 ответа2

0

Начнем с which . В руководстве говорится:

    The which utility takes a list of command names and searches the
    path for each executable file that would be run had these commands
    actually been invoked.

Так как ваш текстовый файл не является исполняемым (вызывается сам по себе), то в нем его нет. Неисполняемый файл в вашем пути может быть вызван с помощью интерпретатора. Соглашением было бы сделать cd (изменить каталог) в папку, в которой находится ваш неисполняемый файл, а затем назвать его примерно так:

    python mytext.py
0

PATH предназначен исключительно для поиска исполняемых программ. Нет смысла вызывать текстовый файл, такой как программа, и ожидать его запуска.

Я бы предложил использовать механизм bash "команда не найдена" для поиска документа по отдельному пути поиска: добавьте это в ваш ~/.bashrc

function command_not_found_handle {
    for dir in /search/path/A /search/path/B ... ; do
        if [[ -r "$dir/$1" ]]; then
            open "$dir/$1" "$@"
            return
        fi
    done
    echo "$1: command not found" >&2
    return 127
}

Затем source ~/.bashrc и запущенный mytex.py должны запустить файл с приложением по умолчанию, если файл находится в одном из каталогов, перечисленных в команде for .

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .