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