【发布时间】:2012-03-28 19:23:46
【问题描述】:
我在谷歌上搜索了这个 senario,但它充斥着关于如何将相对路径转换为绝对路径的结果(这可行,但我觉得有更简单的方法)
我有以下场景:
$ls ../
executable1 dir1
$
$ls
shellscript1
$
$cat ./shellscript1
#!/bin/bash
#Run executable1, which I know is one dir up towards root
../executable1 arg1 arg2 arg3 etc
exit 0
#----End Of Script----
$
$./shellscript1
./shellscript1: line 3: ../executable1: No such file or directory
基本上我需要从 bash 脚本调用具有相对路径的可执行文件。它在 bash shell 中运行良好,但在脚本中无法解析路径。我已经验证了工作目录是我所期望的(例如 dir1)。我需要在它前面有一些call 或exec 之类的命令吗?我尝试了sh ../executable1,但当然 bash 对可执行文件感到困惑。
【问题讨论】:
-
需要更多信息。当你测试这个时,你在哪里?输入密码。在 cat 之后我没有看到的一条信息是您正在运行的可执行文件1。试试看。它不应该工作。
-
你的shell命令历史有一些问题:ls返回shellscript1,然后你cat shellscript,那不应该在那里,因为ls没有显示你......你得到了脚本。然后你调用了 ./shellscript (它不存在)。它打印了 ./shellscript1: line 3 ... 您的查询有问题。可以肯定 100% 的文件名有语法错误。仔细检查它是否在那里,不要假设它在那里。
-
确保这些都不是符号链接。
-
@dAm2K 我概括了这个问题以使其更明显,我当然不会用数字命名我的脚本、目录等。
-
@pizza 可执行文件是我自己编译的,因此它是具有 rwx 权限的常规文件。我还编写了 shell 脚本,所以这不是符号链接。
标签: bash shell relative-path