![将不可执行(Tex/text)文件添加到我的 PATH?](https://linux22.com/image/1456138/%E5%B0%86%E4%B8%8D%E5%8F%AF%E6%89%A7%E8%A1%8C%EF%BC%88Tex%2Ftext%EF%BC%89%E6%96%87%E4%BB%B6%E6%B7%BB%E5%8A%A0%E5%88%B0%E6%88%91%E7%9A%84%20PATH%EF%BC%9F.png)
我有两个文件想要从我的计算机上的多个工作目录中的任何一个调用,所以我将它们添加到我已添加到路径的资源文件夹中(然后source
d my.bash_profile
并用 确认echo $PATH
)。
一个是 Python 脚本,我没有遇到任何问题。which myscript.py
查找并打印myscript.py
另一个是 Tex 文件,没有which mytex.py
返回任何内容。该文件夹中的其他文本文件也有同样的结果,我认为这与它们是不可执行文件有关。
有没有办法添加 Tex 和文本文件,以便可以从其他目录调用它们而无需输入完整路径?
答案1
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
。
答案2
让我们从开始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