Вопрос: Добавление неиспользуемых файлов (Tex / text) в мой PATH?


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

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

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

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


1
2017-07-03 18:02


Источник




Ответы:


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 команда.


0
2017-07-03 19:11



Спасибо за этот код. Я понимаю, что мой вопрос не ясен, но я фактически не пытаюсь запустить текстовый файл. Я пытаюсь предоставить файл для опций листинга pandoc, т. Е. pandoc example.md --listings -H mylistings.tex -o example.pdf example.md может быть в моем текущем рабочем каталоге, но я надеюсь использовать эту команду с mylistings.tex для преобразования файлов Markdown в несколько каталогов. Считаете ли вы, что лучше попробовать что-то в самом пандоке? (Извините, это только что произошло.)
Вот почему важно действительно задавать свой реальный вопрос, а не пытаться отвлечь его на что-то другое. Я бы порекомендовал вам задать новый вопрос. - glenn jackman


Начнем с 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
2017-07-03 19:05



Но это не помогает ему найти файл на каком-то пути поиска. - glenn jackman
Спасибо - я не понял, что работает только для исполняемых файлов. Тем не менее, мне все равно хотелось бы узнать, есть ли способ ссылаться на этот файл без полного пути или изменения моего рабочего каталога. Я использую этот файл вместе с другими в рабочем каталоге, который я не хочу добавлять в мой путь.