我对 Solaris 上的 bash 脚本中的数组操作有一个奇怪的问题。我正在使用语法${varName[@]:index}
来获取指定索引之后数组 varname 中的所有元素。但是,如果指定索引之后只有一个元素,则不返回任何内容。
这可以通过示例轻松证明:
#!/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)
谁能解释这种行为?