-1

我正在开发一个 Web 应用程序,其中我使用 shell 脚本作为我的后端(它有一个嵌入式 awk 脚本)和 Java 作为我的前端。我正在使用 Process Builder 来调用 shell 脚本程序。奇怪的是,我的 shell 脚本中的 awk 脚本没有被执行。我在哪里出错了...您能否分享您对此的看法。

在下面的评论中键入的 shell 脚本。

#!/bin/bash
FileA=$1
FileB=$2
awk -v FileA="$FileA" '{print $0 >> FileA;}' "$FileB"
4

1 回答 1

0

试图在评论中互相键入程序是愚蠢的。我已经编辑了您的问题,以包括我破译您的 shell 脚本的内容。我创建了这个答案来记录我要求您将程序修改为的内容。请提供在 /tmp/out 中看到的输出(在您的问题中),以便从 shell 和 java 程序执行此脚本。

顺便说一句,您是以自己的用户身份运行 java 程序,还是当您尝试附加到文件时,java 程序可能由不同的用户 id 执行,从而导致权限问题。

#!/bin/bash
rm -f /tmp/out
exec >/tmp/out 2>&1
date
set -x
printenv
which awk
FileA="$1"
FileB="$2"
ls -l "$FileA"
id
awk -v FileA="$FileA" '{print $0 >> FileA;}' "$FileB"

确保在更新问题后向我发表评论。

于 2012-07-23T02:51:25.927 回答