运行带脚参数的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
答案 0 :(得分:1)
解决方案:
由于您已在脚本的bash
中指定了shebang
,为什么要使用sh
来调用它?只需运行./test.sh /tmp/f1.txt /tmp/f2.txt /tmp/f3.txt
明确使用bash
:bash test.sh /tmp/f1.txt /tmp/f2.txt /tmp/f3.txt