从Java中调用嵌入在shell脚本中的awk脚本

时间:2012-07-23 00:29:11

标签: java shell awk processbuilder

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

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

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

1 个答案:

答案 0 :(得分:0)

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

BTW,您是以自己的用户身份运行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"

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