0
我陷入了奇怪的问题。当它从bash脚本被调用时,进程替换不起作用,但是当我从终端进行拍摄时,它会起作用。进程替换不能在bash脚本中工作
这里是例子:在终端上运行。
terminal>echo "$x"
a b c
d e f
g h i
j k l
terminal>echo "$y"
1
2
3
4
terminal>paste <(echo "$x") <(echo "$y") -d' '
a b c 1
d e f 2
g h i 3
j k l 4
这里是例子:示例脚本
#!/bin/bash
x='a b c
d e f
g h i
j k l'
y='1
2
3
4'
paste <(echo "$x") <(echo "$y") -d' '
当我上面的脚本中,我得到以下错误:
test: line 12: syntax error near unexpected token `('
test: line 12: `paste <(echo "$x") <(echo "$y") -d' ''
以下是贝壳我的详细信息正在使用。
echo $SHELL
/bin/bash
bash --version
GNU bash, version 4.2.47(1)-release (x86_64-suse-linux-gnu)
有没有其他方法可以绕过这个问题?不一定我想坚持进程替代。
希望的O/P:当bash处于POSIX模式
a b c 1
d e f 2
g h i 3
j k l 4
您的脚本在我的bash 4.3.30上运行Debian jessie。您发布的脚本是您试图执行的真实脚本吗? –
完全一样。 –
它工作正常,你检查了'CRLF' DOS结局吗?从Windows编辑器复制的可能是? – Inian