我是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脚本执行它。
提前致谢
答案 0 :(得分:0)
我假设您最初通过相对路径./executable.sh
执行了该文件。您必须使用shell脚本中的完整路径或cd
从脚本中使用正确的目录。
/path/to/executable.sh arg1 arg 2
或
cd /path/to
./executable.sh arg1 arg2
我建议使用第一个选项,但是你确实有其他选择:
executable.sh
的位置添加到$PATH
。executable.sh
放在可从任何地方访问的地方,即/usr/local/bin
。不要忘记为此文件设置权限,可以使用chmod +x executable.sh
或chmod 0755 executable.sh
来完成。
请注意,这适用于任何可执行文件,而不仅仅是.sh
。