我正在尝试以下方法:
#!/bin/sh
while read LINE
do
diff source_$LINE <(hadoop fs -cat /user/hadoop-path/$LINE/output) > diff_$LINE
done < FILE
从cmd Line可以正常工作,但是从shell中它会产生错误: 意外令牌附近的语法错误`('
请帮忙吗?
答案 0 :(得分:1)
POSIX shell(#!/bin/sh
)中没有进程替换。您的交互式shell显然是bash
,而您的脚本则不是。将shebang更改为#!/bin/bash
,或在脚本中使用here文档:
diff source_$LINE - <<EOF > diff_$LINE
$(hadoop fs -cat /usr/hadoop-path/$LINE/output)
EOF