終端找不到任何命令!
我在 Mac OSX 上使用 brew 安裝最新版本的 perl,然後 perl 提示我使用 local::lib 創建我自己的從 CPAN 下載的 Perl 包目錄。這是我的命令的歷史記錄:
431 brew install perl #recommended to do by brew 432 PERL_MM_OPT="INSTALL_BASE=$HOME/perl5" cpan local::lib 433 echo 'eval "$(perl -I$HOME/perl5/lib/perl5 -Mlocal::lib)"' >> ~/.bash_profile #executing recommendation 434 sudo PERL_MM_OPT="INSTALL_BASE=$HOME/perl5" cpan local::lib 436 echo 'eval "$(perl -I$HOME/perl5/lib/perl5 -Mlocal::lib)"' >> ~/.bash_profile 437 perl program.pl
然後我嘗試執行我的 perl 腳本,但收到此錯誤:
Can't locate getopts.pl in @INC
所以我安裝了 Getopt::Std,它取代了 getopt.pl
sudo cpan> install Perl4::CoreLibs
然後 perl 腳本工作正常。但是,它僅在我進行上述所有安裝的終端中有效。然後我嘗試呼叫其他環境變數,如“python”或“open -a TextEdit ~/.bash_profile”,看看是否可以執行這些變數,但我得到:
-bash: command: command not found
我嘗試查找 bash_profile 文件,但似乎在任何地方都找不到,也許在創建這個新目錄時它被刪除了?當我嘗試查找路徑變數時,我得到了這個,只是不確定如何解釋:
echo PATH=$PATH PATH="/Users/miseq/perl5/bin${PATH:+:${PATH}}"; export PATH; PERL5LIB="/Users/miseq/perl5/lib/perl5${PERL5LIB:+:${PERL5LIB}}"; export PERL5LIB; PERL_LOCAL_LIB_ROOT="/Users/miseq/perl5${PERL_LOCAL_LIB_ROOT:+:${PERL_LOCAL_LIB_ROOT}}"; export PERL_LOCAL_LIB_ROOT; PERL_MB_OPT="--install_base \"/Users/miseq/perl5\""; export PERL_MB_OPT; PERL_MM_OPT="INSTALL_BASE=/Users/miseq/perl5"; export PERL_MM_OPT;
此外,當我打開一個新終端時,我收到以下消息:
-bash: perl: command not found
這讓我相信我所做的 perl 安裝給我帶來了無法從 shell 呼叫任何環境變數的問題。有什麼幫助嗎?
非常感謝
你發布的命令看起來是正確的,但顯然你的結果
.bash_profile
是不正確的。PATH 變數包含 shell 和其他程序查找命令的目錄列表。此列表由用冒號 (:
) 連接的項目表示。例如,一個簡單的 PATH 將是/usr/local/bin:/usr/bin:/bin
,使用 shell 命令設置PATH=/usr/local/bin:/usr/bin:bin
然後當您鍵入命令
ls
時,shell 會查找/usr/local/bin/ls
,然後查找/usr/bin/ls
,然後/bin/ls
執行它找到的第一個。在您的情況下,變數的內容是設置變數的指令,而不是實際的目錄列表。由於目錄列表不包含任何標準目錄,因此除了少數內置命令外,您的 shell 找不到任何命令。
編輯文件
~/.bash_profile
並刪除無效PATH
設置,然後打開一個新終端。您可以將其放在#
行首以將其註釋掉。如果你想從終端編輯文件,首先設置一個 sensiblePATH
,例如上面的那個(當你在命令行上執行它時,它只在那個終端內有效)。如果您不確定什麼好什麼不好,請編輯您的問題並複制粘貼
~/.bash_profile
.