Shell中oarr=($output)的作用及支持该语法的Shell咨询
问题解答:oarr=($output) 的作用与支持的Shell
1. 核心作用
oarr=($output) 会把变量 $output 中的内容按空白字符(空格、制表符、换行符等)自动分割成多个元素,然后将这些元素整体赋值给数组变量 oarr。
结合你给出的 $output 示例内容,执行这条命令后:
oarr[0]对应字符串CREDENTIALSoarr[1]对应EUROIWPPEACEGPNASIA(也就是你后续用来赋值给AWS_ACCESS_KEY_ID的内容)oarr[2]对应时间字符串2017-03-19T23:09:47Zoarr[3]对应密钥值z66Pku1EFb6dCP1+02RWzRhaYEGPpLy6xcjZz3rr(对应AWS_SECRET_ACCESS_KEY)oarr[4]对应那串长会话令牌(对应AWS_SESSION_TOKEN)
需要注意:Shell会自动忽略连续的空白字符,哪怕$output里有多个空格或换行,都会被当成单个分隔符处理。
2. 支持该语法的Shell
这种数组赋值属于Bourne-style Shell的扩展特性,标准POSIX sh(比如部分系统默认的/bin/sh如果是Dash的话)不支持数组,支持的Shell包括:
- Bash:Linux系统最常用的默认Shell,完全兼容该语法
- Zsh:流行的交互式Shell,兼容Bash的数组操作逻辑
- Korn Shell (ksh):包括ksh88、ksh93等版本,原生支持数组变量
- mksh:Korn Shell的轻量级变种,常见于嵌入式系统或轻量Linux发行版
如果是老式的Bourne Shell(部分Unix系统的/bin/sh)或严格遵循POSIX标准的Shell(比如Dash),执行这条命令会报错,因为它们没有数组变量的概念。
内容的提问来源于stack exchange,提问作者chriscatfr
相关产品推荐
相关产品推荐

