命令在终端中工作但不在脚本中?

时间:2012-08-18 21:55:02

标签: java linux unix ubuntu

我有以下脚本,当作为脚本执行时不起作用,但在将完全相同的命令输入终端时确实有效:

#! /bin/sh

cd ~/Desktop/Example/

javac Generator.java

错误消息是:

  

my_script.sh 3:my_script.sh:javac:not found

上面的脚本名为my_script.sh,我使用以下命令从终端执行:

  

sh my_script.sh

当我做的时候

  

echo $ SHELL

在终端我得到:

  

/斌/庆典

3 个答案:

答案 0 :(得分:1)

将jmlc添加到路径并再次运行脚本。

要检查:打开一个新shell并输入'jmc'。

让脚本正常工作的另一种方法是在脚本中指定完整路径。将'jmlc'替换为'/ full_path_here / jmlc'。

确保jmlc脚本中的任何其他命令也可在路径中使用。

答案 1 :(得分:1)

您还可以通过导出其路径使jmlc可用:

#! /bin/sh

export jmlc_bin=FULL_PATH_TO_JMLC

cd ~/Desktop/Example/

$jmlc_bin Generator.java

答案 2 :(得分:0)

导航到单行命令工作的目录,并将脚本保存在该目录中。

然后执行

./my_script.sh