Solarisのbashスクリプト内での配列操作に奇妙な問題があります。構文${varName[@]:index}
を使用して、指定されたインデックスの後の配列varnameのすべての要素を取得しています。ただし、指定したインデックスの後に要素が1つしかない場合は、何も返されません。
これは、例によって簡単に示すことができます。
#!/bin/bash
paramArray=( a b c )
echo "everything after 2" ${paramArray[@]:2} # Should display c but doesn't
echo "parameter 2 only " ${paramArray[2]} # Correctly displays c
paramArray=( a b c d e )
echo "everything after 2" ${paramArray[@]:2} # Correctly displays c d e
echo "parameter 2 only " ${paramArray[2]} # Correctly displays c
このコードは、Cygwinを実行しているWindowsボックスでは正しく機能しますが、Solarisでは失敗します(バージョン:Solaris 9 9/05 s9s_u8wos_05 SPARC)
誰かがこの行動を説明できますか?