在命令行中运行但在shell脚本中出错?

时间:2017-11-03 07:03:24

标签: linux shell

我是Linux新手。我有一个测试系统SuSe 64位。我有一个可执行文件,我使用rpm文件安装。当我运行命令行时,可执行文件运行正常。

linux:linux_test> path / to / executable arg1 arg2

它成功运行但是当我在shell脚本中放入相同的命令时,它会抛出No Such Directory或File

的错误

我使用file命令检查了文件类型,得到了以下输出:

ELF 64-bit LSB executable, x86-64, version 1 (SYSV), statically linked, for GNU/LINUX 2.4.0, stripped

更多详情: 我试图执行的命令是: /opt/cds/scripts/EINJ /call del force其中/opt/cds/scripts/EINJ可执行路径,/call del force是传递的参数

我的shell脚本包含以下两行:

#!/bin/bash /opt/cds/scripts/EINJ /call del force

它给了我错误: /temp.sh: line2: /opt/cds/scripts/EINJ : No such file or directory

我还尝试将命令更改为cd /opt/cds/scripts && ./ENIJ /call del force

请帮助我如何从shell脚本执行它。

提前致谢

1 个答案:

答案 0 :(得分:0)

我假设您最初通过相对路径./executable.sh执行了该文件。您必须使用shell脚本中的完整路径或cd从脚本中使用正确的目录。

/path/to/executable.sh arg1 arg 2

cd /path/to ./executable.sh arg1 arg2

我建议使用第一个选项,但是你确实有其他选择:

  1. executable.sh的位置添加到$PATH
  2. executable.sh放在可从任何地方访问的地方,即/usr/local/bin
  3. 不要忘记为此文件设置权限,可以使用chmod +x executable.shchmod 0755 executable.sh来完成。

    请注意,这适用于任何可执行文件,而不仅仅是.sh