Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/linux/27.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Linux 意外标记';完成';for循环shell脚本中出现错误_Linux_Bash_Shell - Fatal编程技术网

Linux 意外标记';完成';for循环shell脚本中出现错误

Linux 意外标记';完成';for循环shell脚本中出现错误,linux,bash,shell,Linux,Bash,Shell,我收到此意外的“完成”令牌错误 echo -e "Enter the file stem name" read filestem for i in {1..22} do `java -cp /export/home/alun/jpsgcs/ CMorgansToTheta $filestem_$i.INPUT.par $filestem_$i.THETA.par` done 如果Java程序不向输出写入任何内容,则您的for循环(由于反引号)与 这会产生您看到的错误。您可能只想删除反引

我收到此意外的“完成”令牌错误

echo -e "Enter the file stem name"
read filestem
for i in {1..22}
do
    `java -cp /export/home/alun/jpsgcs/ CMorgansToTheta $filestem_$i.INPUT.par $filestem_$i.THETA.par`
done

如果Java程序不向输出写入任何内容,则您的
for
循环(由于反引号)与

这会产生您看到的错误。您可能只想删除反引号以运行程序22次:

echo -e "Enter the file stem name"
read filestem
for i in {1..22}
do
    java -cp /export/home/alun/jpsgcs/ CMorgansToTheta "${filestem}_$i.INPUT.par" "${filestem}_$i.THETA.par"
done

如果Java程序不向输出写入任何内容,则您的
for
循环(由于反引号)与

这会产生您看到的错误。您可能只想删除反引号以运行程序22次:

echo -e "Enter the file stem name"
read filestem
for i in {1..22}
do
    java -cp /export/home/alun/jpsgcs/ CMorgansToTheta "${filestem}_$i.INPUT.par" "${filestem}_$i.THETA.par"
done

在Java命令行中:

java -cp /export/home/alun/jpsgcs/ CMorgansToTheta $filestem_$i.INPUT.par $filestem_$i.THETA.par
您正在使用:

$filestem_$i
这相当于:

${filestem_}${i}
因为下划线
在shell中不被视为单词边界,而整个
文件项将被视为变量名。您很可能应该使用:

${filestem}_${i}
你能给我看看这个脚本的输出吗

#!/bin/bash
set -x
echo -e "Enter the file stem name"
read filestem
for i in {1..3}
do
    echo "java -cp /export/home/alun/jpsgcs/ CMorgansToTheta ${filestem}_${i}.INPUT.par ${filestem}_${i}.THETA.par"
done

在Java命令行中:

java -cp /export/home/alun/jpsgcs/ CMorgansToTheta $filestem_$i.INPUT.par $filestem_$i.THETA.par
您正在使用:

$filestem_$i
这相当于:

${filestem_}${i}
因为下划线
在shell中不被视为单词边界,而整个
文件项将被视为变量名。您很可能应该使用:

${filestem}_${i}
你能给我看看这个脚本的输出吗

#!/bin/bash
set -x
echo -e "Enter the file stem name"
read filestem
for i in {1..3}
do
    echo "java -cp /export/home/alun/jpsgcs/ CMorgansToTheta ${filestem}_${i}.INPUT.par ${filestem}_${i}.THETA.par"
done


您是否尝试添加
#/bin/bash
头到脚本顶部?为什么在backticks中有
java-cp..
?没有意义,除非您将java命令的输出获取到某个变量。或者删除反勾号?那个java程序真的返回可执行的
bash
语句吗?我只是在我的系统上尝试了一下,但没有得到那个错误。这就是整个剧本吗?如果没有,请更新您的问题以向我们展示所有内容(复制并粘贴,不要重新键入)。正如@depesz所说,反勾号没有意义,但它们不应该导致您看到的症状,.cp是类路径,如果没有这些路径,我会在java中得到classdefnotfound错误。这就是所有的代码,我加了#/bin/bash也是。我也遇到同样的错误。您是否尝试添加
#/bin/bash
头到脚本顶部?为什么在backticks中有
java-cp..
?没有意义,除非您将java命令的输出获取到某个变量。或者删除反勾号?那个java程序真的返回可执行的
bash
语句吗?我只是在我的系统上尝试了一下,但没有得到那个错误。这就是整个剧本吗?如果没有,请更新您的问题以向我们展示所有内容(复制并粘贴,不要重新键入)。正如@depesz所说,反勾号没有意义,但它们不应该导致您看到的症状,.cp是类路径,如果没有这些路径,我会在java中得到classdefnotfound错误。这就是所有的代码,我加了#/bin/bash也是。我可以得到同样的错误。好的,你能在你的问题中发布你最新的建议脚本吗?回声-e“输入文件干名”,我在{ 1…22 }中读取文件文件,做java -CP/Outs/Alun/JPSGCS/CMONGOSTOTHETET${FixStudio}{$i}。也许你的问题已经解决了,那是个失误。对此我很抱歉。我仍然得到未定义的令牌错误。还有一件奇怪的事情,我的“for”在vi编辑器中没有突出显示@AUBHAWAOK可以在你的问题中发布你最新的建议脚本。E-E“输入文件名”。I文件在{ 1…22 }中执行java -CP/Outs/Alun/JPSGCS/CMONGOSTOTHETET${FixStudio}{$i}。输入。PA$ ${FielStudi}{$i}。Te.Pa. DoeOK看起来像你接受了其他答案,可能你的问题被解决了。这是一个错误点击。对此我很抱歉。我仍然得到未定义的令牌错误。还有一件奇怪的事情,我的“for”在vi编辑器中没有突出显示@是从shell脚本还是从Java程序?我修复了shell脚本中的一个小错误,该错误会将错误的文件名传递给Java程序。意外的文件结束错误来自脚本。不是来自shell脚本或java程序的java程序?我修复了shell脚本中的一个小错误,该错误会将错误的文件名传递给Java程序。意外的文件结束错误来自脚本。不是java程序