現象
Ubuntu16.04で以下のスクリプトが機能しなかった。
#!bin/sh
# いろいろ処理
ls /home/{userA,userB}/
# いろいろ処理
ls の結果をパイプで繋いであれこれしてた部分が動かなくなってた。(CentOSでは動いてた)
出力を見ると、ブレース展開{A,B}がうまく機能していないっぽい。
結果
以下のように、シバンを変更したら動いた。
#!bin/bash
# いろいろ処理
ls /home/{userA,userB}/
# いろいろ処理
原因
どうやらUbuntuは、/bin/sh -> dash らしい。
~$ readlink -f /bin/sh
/bin/dash
そして、dashでは、ブレース展開がサポートされていない。
CentOSでは、/bin/sh -> bash なので気にしてなかった。