私は奇妙な問題で立ち往生しています。プロセス置換は、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' ''
後は、シェルIの詳細です使用しています。
echo $SHELL
/bin/bash
bash --version
GNU bash, version 4.2.47(1)-release (x86_64-suse-linux-gnu)
この問題を回避する方法はありますか?必ずしも私がプロセス置換に固執したいとは限りません。 bashはPOSIXモードであるとき
a b c 1
d e f 2
g h i 3
j k l 4
あなたのスクリプトはDebian jessieのmybash 4.3.30で動作します。投稿したスクリプトは実行しようとした実際のスクリプトですか? –
はまったく同じです。 –
これは正常に動作しています。 'CRLF' DOSの終了をチェックしましたか? Windowsのエディタからコピーされている可能性がありますか? – Inian