';手表';命令不';不能在Java中由Ganymed库调用的bash脚本中工作

';手表';命令不';不能在Java中由Ganymed库调用的bash脚本中工作,java,bash,scripting,ganymede,Java,Bash,Scripting,Ganymede,我有一个剧本。看起来是这样的: #!/bin/sh watch -n300 java -jar myapp.jar > out.log & mkdir aaa echo "App accesa" 当我使用Ganymed库从Java应用程序调用myscript.sh时,它不会执行watch语句,但已经创建了“aaa”文件夹。 我的java语句是 Session sess = conn.openSession(); String command = "cd /root/;./mysc

我有一个剧本。看起来是这样的:

#!/bin/sh
watch -n300 java -jar myapp.jar > out.log &
mkdir aaa
echo "App accesa"
当我使用Ganymed库从Java应用程序调用myscript.sh时,它不会执行watch语句,但已经创建了“aaa”文件夹。 我的java语句是

Session sess = conn.openSession();
String command = "cd /root/;./myscript.sh";            
System.out.println(command);
sess.execCommand(command);
我不明白为什么从控制台运行myscript.sh脚本时效果会很好


提前感谢

从技术上讲,您有一个shell脚本,而不是bash脚本。bash脚本将以
#开头/bin/bash
。如何从命令行运行
myscript.sh
?如果你拆下shebang怎么办?试试
shmyscript.sh
vs
bash myscript.sh
。您是否得到相同的结果?从命令行,我通过以下命令运行此脚本:./myscript.sh我已经尝试使用sh myscript.sh,但结果相同。通过控制台,一切正常,但对于ganymed,watch语句命令不起作用。如果删除shebang,然后尝试使用
bash myscript.sh
sh myscript.sh
,则情况始终相同。通过控制台,一切正常,但从我的应用程序中,该语句不起作用,但如果我删除此“watch-n300”,它也可以通过我的应用程序起作用,但只有一次