Ber*_*lcı 3 shell zsh path which
我已经全新安装了 Debian Wheezy,并安装了 zsh。几天后,我完成了 TeX Live 2014 的原版安装,因此我将必要的二进制路径添加到了 $PATH 中。现在我开始编写小脚本,所以我想把它们放在容易访问的地方,即~/bin.
我的路径是这样的:
~/bin:/opt/texbin:/usr/local/bin:/usr/bin:/bin:/usr/local/games:/usr/games
Run Code Online (Sandbox Code Playgroud)
现在,如果我想从 TeX Live 运行一些东西,这很容易:
% which pdflatex
/opt/texbin/pdflatex
Run Code Online (Sandbox Code Playgroud)
没问题。但是当我尝试从~/bin,...
% which hello_world
hello_world not found
Run Code Online (Sandbox Code Playgroud)
所以我仔细检查了一遍:
% ls -l ~/bin
total 18
-rwxr-xr-x 1 bozbalci bozbalci 5382 Sep 8 00:28 hello_world
Run Code Online (Sandbox Code Playgroud)
它表明 hello_world 在~/bin其执行权限设置方面做得很好。我试过了rehash,但没有奏效。帮助?
在 shell 命令中
PATH=~/bin:/opt/texbin:/usr/local/bin:/usr/bin:/bin:/usr/local/games:/usr/games
Run Code Online (Sandbox Code Playgroud)
执行 shell 命令时,波浪号会扩展到您的主目录。因此,的结果值PATH类似于
/home/theconjuring/bin:/opt/texbin:/usr/local/bin:/usr/bin:/bin:/usr/local/games:/usr/games。
确保波浪号不在引号 ( ) 内,否则它代表自身。要将目录添加到 的当前值PATH="~/bin:…"PATH,您可以使用
PATH=~/bin:$PATH
Run Code Online (Sandbox Code Playgroud)
通常,在 zsh$PATH以外的shell 中,当值包含空格或其他特殊字符时,外部双引号会中断,但在赋值中,这是安全的。export但是,使用,您需要编写export PATH=~/bin:"$PATH"(尽管您不需要export使用,PATH因为它已经在环境中)。在 zsh 中,除非变量可能为空,否则不需要双引号,但如果设置PATHin .profile,则由/bin/shor处理/bin/bash。
如果您正在设置PATH中~/.pam_environment,但是,你不能使用~或者$HOME放置你的home目录。这个文件不是由 shell 解析的,它是一个简单的NAME=value行列表。所以你需要完整地写出路径。