Shell comm参数问题

时间:2015-06-25 15:45:23

标签: linux shell comm

运行带脚参数的shell脚本时遇到问题。 直接在Linux上运行的此命令有效:

comm -13 <(sort /tmp/f1.txt) <(sort /tmp/f2.txt) > /tmp/f3.txt

如果我尝试使用此命令运行此shell脚本发送参数,我收到以下错误:

test.sh: line 6: syntax error near unexpected token `('
'est.sh: line 6: `comm -13 <(sort $1) <(sort $2) > $3

这是我的shell代码:

#!/bin/bash
comm -13 <(sort $1) <(sort $2) > $3

我使用以下命令运行它:

sh test.sh /tmp/f1.txt /tmp/f2.txt /tmp/f3.txt

我已经没有想法可能出错了。 请协助。

谢谢你, -Andrey

1 个答案:

答案 0 :(得分:1)

解决方案:

  1. 由于您已在脚本的bash中指定了shebang,为什么要使用sh来调用它?只需运行./test.sh /tmp/f1.txt /tmp/f2.txt /tmp/f3.txt

  2. 即可
  3. 明确使用bashbash test.sh /tmp/f1.txt /tmp/f2.txt /tmp/f3.txt