使用shell脚本在字符串变量中存储整数数组
我一直在尝试使用Unix shell脚本将整数数组作为字符串存储在变量中 e、 g: 作为使用shell脚本在字符串变量中存储整数数组,shell,Shell,我一直在尝试使用Unix shell脚本将整数数组作为字符串存储在变量中 e、 g: 作为 如何实现这一点?尝试以下操作,最后str将整个数组存储为字符串: Arr=(1,2,3) $ echo ${Arr} 1,2,3 str=`echo "${Arr//,}"` $ echo $str 123 这更像是一个功能性问题,但是否希望此字符串存储大于9的数字?我想如果array[3]={9,10,11},str=“91011”可能会成为一个问题。在Unix shell脚本中,可能在bash或z
如何实现这一点?尝试以下操作,最后str将整个数组存储为字符串:
Arr=(1,2,3)
$ echo ${Arr}
1,2,3
str=`echo "${Arr//,}"`
$ echo $str
123
这更像是一个功能性问题,但是否希望此字符串存储大于
9
的数字?我想如果array[3]={9,10,11}
,str=“91011”
可能会成为一个问题。在Unix shell脚本中,可能在bash或zsh中,但在POSIX shell(它没有数组…)中,您没有对数组执行任何操作。请选择正确的标记,例如bash
或zsh
或ksh
以匹配您实际使用的外壳。此外,请澄清您的问题。您正试图根据您的shell,将{0,1,2}
的大括号扩展(例如应引用012
,以避免混淆)分配给数组的第二个元素(例如数组[2]=“012”
),然后您询问如何将其转换为str=123
??呵呵??似乎有一个打字错误或逻辑断开某处。。。或者你真的想把+1
加到数组[2]
中的每个数字上,得到str
?我知道你要去哪里了。始终在代码前面加上4个空格
,以便在回答中格式化代码(作为代码)。另外,您是如何使Arr=(1,2,3)
等价于array[2]={0,1,2}
?您可以创建一个单元素数组Arr[0]=“1,2,3”
,其中原始数组具有array[2]={0,1,2}
。然后使用带保护的标准变量表示法(例如${var}
)访问Arr
的第一个元素??我不确定这个问题是否清楚到可以回答这个问题,但你的回答可能会从进一步的解释中受益。
str="123"
Arr=(1,2,3)
$ echo ${Arr}
1,2,3
str=`echo "${Arr//,}"`
$ echo $str
123