$PATH 環境變數似乎無法辨識
我已經全新安裝了 Debian Wheezy,並在其中安裝了 zsh。幾天后,我完成了 TeX Live 2014 的 vanilla 安裝,因此我將必要的二進制路徑添加到了我的 $PATH。現在我開始編寫小腳本,所以我想把它們放在容易訪問的地方,即
~/bin
.我的路徑如下所示:
~/bin:/opt/texbin:/usr/local/bin:/usr/bin:/bin:/usr/local/games:/usr/games
現在,如果我想從 TeX Live 執行某些東西,這很簡單:
% which pdflatex /opt/texbin/pdflatex
沒問題。但是當我嘗試從
~/bin
…執行某些東西時% which hello_world hello_world not found
所以我仔細檢查了:
% ls -l ~/bin total 18 -rwxr-xr-x 1 bozbalci bozbalci 5382 Sep 8 00:28 hello_world
它表明 hello_world 在
~/bin
執行權限設置方面做得很好。我試過rehash
了,但是沒有用。幫助?
在 shell 命令中
PATH=~/bin:/opt/texbin:/usr/local/bin:/usr/bin:/bin:/usr/local/games:/usr/games
執行 shell 命令時,波浪號會擴展到您的主目錄。因此, 的結果值
PATH
類似於/home/theconjuring/bin:/opt/texbin:/usr/local/bin:/usr/bin:/bin:/usr/local/games:/usr/games
。確保波浪號不在引號 (
PATH="~/bin:…"
) 內,否則它代表自己。要將目錄添加到 的目前值PATH
,您可以使用PATH=~/bin:$PATH
通常,在 zsh 以外的 shell 中,當值包含空格或其他特殊字元時,
$PATH
外部雙引號會中斷,但在賦值中,它是安全的。export
但是,您需要使用 with 編寫(export PATH=~/bin:"$PATH"
儘管您不需要export
with,PATH
因為它已經在環境中)。在 zsh 中,你不需要雙引號,除非變數可能為空,但如果你設置PATH
in.profile
,它由/bin/sh
or處理/bin/bash
。但是,如果您設置
PATH
在 中~/.pam_environment
,則不能使用~
or$HOME
代表您的主目錄。這個文件不是由 shell 解析的,它是一個簡單的NAME=value
行列表。因此,您需要完整地編寫路徑。