尝试从命令提示符下取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
答案 0 :(得分:4)
要将$@
存储在数组中,您必须编写:
arr=("$@")
没有括号$arr
只是一个字符串。