数组 – 为什么读取-a在zsh中失败
发布时间:2020-12-14 01:02:30 所属栏目:Linux 来源:网络整理
导读:如果我输入: echo "1 thedquote 2 quickdquote 3 brown" | while read -a D; do echo "${D[1]}--${D[0]}"; done 在bash中它说: the--1quick--2brown--3 但在zsh中它说: zsh: bad option: -a 为什么?我该怎么做呢? 解决方法 在两个shell中,read是内置的.
如果我输入:
echo "1 the dquote> 2 quick dquote> 3 brown" | while read -a D; do echo "${D[1]}--${D[0]}"; done 在bash中它说: the--1 quick--2 brown--3 但在zsh中它说: zsh: bad option: -a 为什么?我该怎么做呢? 解决方法
在两个shell中,read是内置的.它有相同的目的,但实现和选项不同.
为了读入zsh中的数组,read需要选项-A(而不是-a): echo "1 the 2 quick 3 brown" | while read -A D; do echo $D[2]--$D[1]; done 注意:zsh和bash之间还有很多不同之处: >在zsh数组中默认编号为1,在bash中它们从零开始. FILENAME="no such file" cat $FILENAME 将在zsh中只打印一条错误消息: cat: 'no such file': No such file or directory 但bash中有三条错误消息: cat: no: No such file or directory cat: such: No such file or directory cat: file: No such file or directory >在zsh中,内置echo默认情况下会计算转义码.在bash中你需要传递-e参数. echo 'footbar' zsh的: foo bar 庆典: footbar > …… 一般来说,重要的是要记住,虽然zsh和bash类似,但它们远非相同. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |