我有一个test.sh
文件,它通过文本文件test.bed
:
1 31 431
1 14 1234
1 54 134
2 435 314
2 314 414
与
while read line;do
echo $line
# ... more code ... #
done < <(awk -F '\t' '$1 == 1 {print $0}' test.bed )
使用bash test.sh
运行此功能,但使用sh test.sh
时会出现语法错误。如何使用sh
代替bash
来完成上述操作?
它给出的错误是
test.sh: line 5: syntax error near unexpected token `<'
test.sh: line 5: `done < <(awk -F '\t' '$1 == 1 {print $0}' test.bed )'
答案 0 :(得分:3)
Process Substitution是bash
扩展程序 - 未由POSIX
指定。这是sh
兼容..
#!/bin/sh
awk -F '\t' '$1 == 1 {print $0}' test.bed | while read line; do
echo $line
# ... more code ... #
done