最近我安装了一个叫“paradigm”的程序。在程序路径(/home/hora/Paradigm/)有一个目录“测试数据”(/home/hora/Paradigm/testdata),它包含一个运行应用程序示例测试的shell脚本。(runtests.sh),但现在我尝试运行它,我得到了“没有这样的文件或目录”的错误,虽然文件,这是提到的错误是有。我敢肯定的问题是由于缺乏我的知识,以linux和您的帮助将不胜感激。要说明情况:
hora@serv:~/Paradigm/testdata$ ./runtests.sh
Testing node splitting [1/2], should take seconds
diff: needs_split_1.out: No such file or directory
./runtests.sh: line 6: ../pathwaytab2daifg: No such file or directory
但如果我列出目录的内容,所提到的文件都在那里:
hora@serv:~/Paradigm/testdata$ ls
complex_family_pathway.tab needs_split_1.cfg needs_split_2.out runtests.sh small_disconnected_pathway.tab
complex_family_pathway.tab.out needs_split_1.out needs_split_2.pathway.tab
然后道:
hora@serv:~/Paradigm$ ls
common.h configuration.o
evidencesource.o helperScripts makefile
pathwaytab2daifg.cpp pathwaytab.h test1 configuration.cpp
evidencesource.cpp externVars.cpp main.cpp paradigm
pathwaytab2daifg.o pathwaytab.o testdata configuration.h
evidencesource.h externVars.o main.o pathwaytab2daifg
pathwaytab.cpp README.mediawiki
以下是脚本内容(有问题的部分):
#!/bin/bash
set -o pipefail
cd
echo Testing node splitting [1/2], should take seconds
../pathwaytab2daifg needs_split_1.pathway.tab needs_split_1.cfg \
| diff needs_split_1.out - || exit 1
3条答案
按热度按时间ryevplcw1#
我相信这个脚本的作者希望您将
HOME
设置为~/Paradigm
,或者他们希望您直接安装在您的HOME目录(~
)而不是~/Paradigm
。无论哪种方式,这都是他们的错误。一个简单的修复方法是将安装移到~
,或者尝试:env HOME=$(pwd) ./runtests.sh
(Note
env
不是必需的,除非您运行的是csh
系列shell(如csh
或tcsh
)。设置HOME
将更改在不使用参数调用cd
时的行为,并使HOME的值成为目标目录。kqlmhetl2#
这一行:
将目录更改为
~/
,如果不传递路径,则cd
是默认参数(请参见here)。如果愿意,您可以通过为
cd
指定一个绝对路径(即,将cd
行更改为cd /home/hora/Paradigm/testdata
)来修复脚本,使其在任何位置工作。z0qdvdin3#
我知道这是一个非常古老的问题,但我认为我的答案是相关的其他人没有找到他们的答案。
我从2000年开始在家庭服务器上使用Linux。最近,我将家庭服务器升级到64位架构(DELL R510 w/2@Xeon)。
我一直在用一个程序(text2pdf.c)。我忘记了在安装到64位系统之前清理和重新制作可执行文件。因此,我收到了同样的错误,但不是因为我在网上找到的所有答案中所述的原因。“which”和“type”没有给出任何线索,但使用“file”我给了我在编译时链接的库的信息,它们是2.4.32库。显然,在4.x64位内核上的旧32位库不起作用。makeclean,make(和makeinstall)清除了这个问题。
平安祝福,JQ