Unix字符串拼接:如何将变量转换为数组定义格式?
快速将字符串变量转为Shell数组
嘿,你的这个需求其实非常容易实现!在Bash或者大多数POSIX兼容的Unix shell里,一行命令就能搞定:
x=($x)
为什么这行命令管用?
当你执行x=($x)时,shell会自动把原来x变量中的字符串按空白字符(这里是空格)分割成独立的元素,然后将这些元素赋值成数组形式。执行完这行后,x就变成了你想要的数组(1 48 38 39 45)。
你可以用下面的命令验证效果:
# 输出数组的第一个元素 echo ${x[0]} # 会打印出1 # 输出整个数组的所有元素 echo ${x[@]} # 会打印出1 48 38 39 45
小提示
如果你的变量中包含带空格的元素(比如x="1 '48 5' 38"),上面的简单方法就会出错,这时候可以用更稳妥的read命令:
read -ra x <<< "$x"
不过对你当前的纯数字无空格场景来说,x=($x)绝对是最简单直接的方案。
内容的提问来源于stack exchange,提问作者Lamar
相关产品推荐
相关产品推荐

