我需要将 bash 中的 stout 和 stderr 分别重定向到单独的文件。好吧,我完成了这个命令:
((/usr/bin/java -jar /opt/SEOC2/seoc2.jar 2>&1 1>&3 | tee --append /opt/SEOC2/log/err.log) 3>&1 1>&2 | tee --附加 /opt/SEOC2/log/app.log) >> /opt/SEOC2/log/combined.log 2>&1 &
从命令行运行正常。
试图将相同的命令放入bash 脚本
... 12 cmd="(($run -jar $cmd 2>&1 1>&3 | tee --append $err) 3>&1 1>&2 | tee --append $log) >> $combined 2>&1" ... 30 echo -e "开始服务..." 31 $cmd & 32 pid=`ps -eo pid,args | grep seoc2.jar | grep -v grep | 剪切-c1-6` 33 如果 [ ! -z $pid ]; 然后 ...
导致这样的错误:
root@operator:/opt/SEOC2# seoc2 start 开始服务... /usr/local/bin/seoc2: 第 31 行: ((/usr/bin/java: 目录或文件不存在
试图用 $( )、` ` 等来覆盖这个命令,但完全没有效果:(
任何建议或建议将不胜感激,已经玩了几个小时:/
非常感谢Rene