shell数组的等式赋值(变量交换)坑

在shell中式不能直接用=交换数组的.如果直接使用=得到的就会是数组的第一个数值

  1 # /bin/bash
  2 res=(1 2)
  3 res1=$res
  4 echo ${res1[0]}
  5 echo ${res1[1]}
输出:
1
    --空行  ${res[1]} 并不存在

正确的数组交换

方式一

  1 # /bin/bash
  2 res=(1 2)
  3 res1=(`echo ${res[*]}`)
  4 echo ${res1[0]}
  5 echo ${res1[1]}
输出:
1
2

方式二

  1 # /bin/bash
  2 res=(1 2)
  3 res1=(${res[0]} ${res[1]})
  4 echo ${res1[0]}
  5 echo ${res1[1]}
输出:
1
2
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 官网 中文版本 好的网站 Content-type: text/htmlBASH Section: User ...
    不排版阅读 4,467评论 0 5
  • 关于Mongodb的全面总结 MongoDB的内部构造《MongoDB The Definitive Guide》...
    中v中阅读 32,041评论 2 89
  • constraintsWithVisualFormat:参数为NSString型,指定Contsraint的属性,...
    baii阅读 278评论 0 0
  • 经常在加班?工作效率低?一直在找高效的工作方法?如果我说,升级工作效率最大的动力是想要偷懒,你会不会失望呢? 我从...
    盒子很随心阅读 636评论 4 6
  • 文/Screalling 奥运会,世界最高水平的体育竞技平台,万众瞩目的精彩体育盛会。任何一个国家能够申奥成功,都...
    苍木幽林阅读 463评论 0 3