无法在路径中找到命令

时间:2016-01-14 14:40:59

标签: bash

我的f中有一个名为$PATH的程序,我可以通过在终端中输入f来执行它。但是,之后在同一个终端输入which f,它会输出错误:which: no f in (...),它会在括号中给出完整路径(确实包含f本身的正确路径)。

然后使用type f我得到了正确的结果。

有没有人知道为什么会这样?

以下是评论中提问的答案:

  • f本身是perl脚本的符号链接:

    vwos3xz@vwososuvs012:~$ls -l $(command -v f)
    
    lrwxrwxrwx 1 root root 42  2. Aug 2012  /tef/tegf/06_CAE_System/064_soft/PERL_SCRIPTE/bin/f -> ../CRASH_SCRIPTE/FEMSTARTER/fem-starter.pl
    

    实际上,fem_starter.pl本身是同一目录中fem_starter-1.77.pl的符号链接

  • 我有理由相信路径中没有拼写错误,因为我只需在终端中输入f并让它运行(同样,输入和命令-v工作)

  • 我在.bashrc中设置路径,但.bash_profile存在,只是源.bashrc。另外,我将BASH_ENV设置为我的.bashrc。

  • type f返回f ist /tef/tegf/06_CAE_System/064_soft/PERL_SCRIPTE/bin/fcommand -v返回/tef/tegf/06_CAE_System/064_soft/PERL_SCRIPTE/bin/f。此外,type -a f返回与type f相同的内容。

  • "你打开了一个新窗口吗?" ...你的意思是一个新的终端?我做了,但那没有什么区别。我使用了xterm和konsole,我确实从窗口管理器和另一个xterm开始。每次,$ PATH都已正确设置,但没有按预期工作。

0 个答案:

没有答案