予期しない"(" - シェルスクリプトはbashを使用するCentOSでは動作しますが、Ubuntuでは動作しません)

予期しない

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

names=($(python3 script.py -p "$GIT_PREVIOUS_COMMIT" -c "$GIT_COMMIT" | tr -d '[],'))

bash 4.1.2(2)がインストールされているCentos 6システムで動作しますが、Ubuntuで実行しようとすると、次の結果が表示されます。

bashfile.sh: 1: bashfile.sh: Syntax error: "(" unexpected

ベストアンサー1

このスクリプトはbash 4.3.48で動作します。問題はbashで実行しないことです。一つはないシェルボーン行が一番上にあります。

#!/bin/bash
names=($(python3 script.py -p "$GIT_PREVIOUS_COMMIT" -c "$GIT_COMMIT" | tr -d '[],'))

shebang 行がない場合、スクリプトはデフォルトの sh 実装によって実行されます。 Ubuntuではbashではなくdashです。ダッシュは配列をサポートしません。

おすすめ記事