意外的“(” - Shell 腳本可以在帶有 bash 的 CentOS 上運行,但不能在 Ubuntu 上運行

意外的“(” - Shell 腳本可以在帶有 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。達世幣不支援數組。

相關內容