执行脚本时出现“歧义重定向”错误

时间:2019-02-08 15:17:41

标签: linux bash shell

在下面的代码片段中,我不断收到此错误消息:

#!/bin/sh
java -jar /opt/wiremock/wiremock-standalone-2.7.1.jar -port 9393 --container-threads 200  --verbose >> /opt/wiremock/wiremock.log 2>&1

错误:

bash: /opt/wiremock/script.sh: line 2: 1#015: ambiguous redirect
Feb  8 17:11:27 ssa2 systemd: wiremock.service: main process exited, code=exited, status=1/FAILURE
Feb  8 17:11:27 ssa2 systemd: Unit wiremock.service entered failed state.
Feb  8 17:11:27 ssa2 systemd: wiremock.service failed.**

我尝试注释掉重定向,如下所示:

java -jar /opt/wiremock/wiremock-standalone-2.7.1.jar -port 9393 --container-threads 200  --verbose #>> /opt/wiremock/wiremock.log 2>&1

,它可以正常工作。但是,我想使重定向生效,以便将日志保存在指定的文件中。

1 个答案:

答案 0 :(得分:1)

错误消息的第一行告诉您在行尾有回车符。

您可以通过多种方式解决该问题:

  1. 确保您的脚本具有unix样式的行尾(例如dos2unix)

  2. 在每个命令的末尾添加一个语句终止符,例如:; #