2

スクリプトに次の行があります。

readarray -t vCollection < <(cut -d, -f2 $1)

スクリプトをサーバーに移動すると、構文エラーがスローされます。

AddACE_Nexus.sh: line 87: syntax error near unexpected token `<'
AddACE_Nexus.sh: line 87: `readarray -t vCollection < <(cut -d, -f2 $1)'

サーバーでは、bash のバージョンは 3.2.51(1)-release (x86_64-suse-linux-gnu) です。

セクション < <(cut -d, -f2 $1) にコメントしましたが、エラーは見つかりませんでした

構文を更新して、スクリプトが PC と同じようにサーバー上で動作するようにするにはどうすればよいですか?

前もって感謝します!

4

1 に答える 1

2

スクリプトは bash で実行する必要があります。

bash script.sh

または、スクリプトに適切なヘッダーを使用してください。

#!/bin/bash
...

通常のシェルはプロセス置換 ( ) をサポートしていません<()。またbash、 as が呼び出された場合sh、機能をサポートしない POSIX 互換モードに設定されます。

別の解決策として、スクリプトで POSIX モードを明示的に無効にすることもできますが、sh実際にはbashそれもリンクされています。

#!/bin/bash
set +o posix
...

ヘッダーがsh既にsh script.sh.

于 2013-09-19T17:16:13.467 に答える