从命令行切割数组与args - bash

时间:2018-01-14 03:03:21

标签: bash

尝试从命令提示符下取args作为数组项时对数组进行切片。问题是切片的位置参数不能像我预期的那样工作。如何切换数组从提示符中获取参数?

./arrays.bash awesome cool strong cute awesome

我想要

  arr=$@ 
  echo ${arr[*]:0:2} #awesome cool

我得到了

  arr=$@ 
  echo ${arr[*]:0:2} # aw

我看了帖子:How to slice an array in bash 但我相信我的问题是不同的。似乎这里的困难是因为我从命令提示符获取我的数组值,或者不是,idk。当数组作为变量包含在脚本中时, 的行为符合预期。 这是来自learnyoubash所以只是调整索引来删除字符而不是整个值,这确实返回正确的答案,不是问题的有效解决方案。 我的解决方案不正确但工作解决方案https://github.com/nodeschool/discussions/issues/2241

1 个答案:

答案 0 :(得分:4)

要将$@存储在数组中,您必须编写:

arr=("$@")

没有括号$arr只是一个字符串。