Armadilloフォーラム

ATDE6上でのルートファイルシステムアーカイブを構築時にbuild.sh: 27: build.sh: Bad substitutionが出る

t_hama

2017年9月21日 20時11分

ATDE6上で10.3.1. 出荷状態のルートファイルシステムアーカイブを構築するを実行しようとした際、build.sh: 27: build.sh: Bad substitutionが出て異常終了してしまいます。

Web上に記載されているものとは違う、別の手順があるのでしょうか?

以下に詳細情報を記載します。

対象HTMLマニュアル:
https://manual.atmark-techno.com/armadillo-iot-g3/armadillo-iotg-g3_pro…

ATDEバージョン:
ATDE6 i386 20170526

x1-debian-builderバージョン:
x1-debian-builder-1.1.1

手順:
 1.ATDEをダウンロード
 2.VMWare上にatde6-i386-20170526.tar.xzを解凍したものを配置して起動
 3.atmarkユーザーでログインし、rootユーザーsu -でスイッチ
 4.apt-get updateを実行し、openssh-servervimをインストール
 5.改めてatmarkユーザーでsshで接続
 6.sudo 経由で qemu-user-staticのインストール(実際はインストールされているため確認のみ)
 7.x1-debian-builder-v1.1.1.tar.gzをダウンロードし、解凍
 8.解凍してできたx1-debian-builder-v1.1.1に移動
 9.sudo sh ./build.shでビルドを実行

 ※同様の手順をrootユーザーでも実行してみましたが、同じエラーで失敗となりました
 ※同様の手順をsshを経由せず、直接VMWareのコンソール経由で実行しても、同じエラーで失敗となりました

失敗時のログ:
添付資料(出荷状態のルートファイルシステムアーカイブを構築する際に失敗するログ.txt)を参照

build.sh: 27: build.sh: Bad substitutionが指定している場所:
添付資料(被疑箇所.txt)を参照

実行時に-vxをつけた際の出力(抜粋):
添付資料(オプション付きの出力.txt)を参照

仮想環境:
・MacOS上のVMWare fusion
・Linux上のvSphere
※両方とも同様のエラーで終了

コメント

大塚と申します。

>
> 手順:
-- 略 --
>  9.sudo sh ./build.shでビルドを実行
>

https://manual.atmark-techno.com/armadillo-iot-g3/armadillo-iotg-g3_pro…
を見ますと

[ATDE ~]$ sudo ./build.sh

と実行しており、build.sh の shebang では #!/bin/bash と bash での実行を指定しています。
それなのに sh ./build.sh と /bin/sh で実行しているので Bad substitution になるのではないでしょうか。

大塚様

ありがとうございます。

おっしゃる通り、当方で誤ってshをつけて実行してしまっていました。
ご指摘いただきました点を修正したところ無事ビルドが通りました。

ご教示ありがとうございました。