Linux unix中字符串的串联

Linux unix中字符串的串联,linux,unix,Linux,Unix,我在Unix中的变量中有如下输入 x=1 48 38 39 45 我想在上面加上括号(),这样它就像一个数组,所以输出应该是 x=(1 48 38 39 45) 在Unix中,最简单的方法是什么?Lamar,您只需在x的开头内容中添加一个括号,然后在结尾再次添加。最简单的方法是: x="($x" 其次是: x="$x)" 现在,x的每一端都有一个括号 您也可以一次完成所有操作: x="($x)" 您还可以使用+=运算符在字符串末尾追加,因此包含该运算符的两部分是: x="($x

我在Unix中的变量中有如下输入

x=1 48 38 39 45  
我想在上面加上括号
()
,这样它就像一个数组,所以输出应该是

x=(1 48 38 39 45)  

在Unix中,最简单的方法是什么?

Lamar,您只需在
x
的开头内容中添加一个括号,然后在结尾再次添加。最简单的方法是:

x="($x"
其次是:

x="$x)"
现在,
x
的每一端都有一个括号

您也可以一次完成所有操作:

x="($x)"
您还可以使用
+=
运算符在字符串末尾追加,因此包含该运算符的两部分是:

x="($x"
x+=")"

相同的结果。

x=“($x”;x=“$x)”
完成。你是说
x=“148383945”
?您需要使用引号将其变为单个字符串。堆栈溢出不是代码编写服务。请出示你的密码。由于堆栈溢出对您隐藏了关闭原因:寻求调试帮助的问题(“为什么此代码不工作?”)必须包括所需的行为、特定的问题或错误以及在问题本身中重现它所需的最短代码。没有明确问题陈述的问题对其他读者没有用处。请参阅:。谢谢,这很有效,但没有解决我的问题。我使用tr命令创建了上面的字符串,这样它就可以像数组一样工作,所以我认为括号丢失了,但我不知道为什么我不能选择单个值。当我使用echo时,我的输出是(148383945),当我尝试使用echo“${x[3]}”时,我得到一个空字符串。你知道为什么吗?如果你正在创建一个数组,那么它必须在创建时使用
(..)
来创建。如果上述操作是由
tr
命令产生的,则执行
x=($(您的tr命令))
其中
$(…)
称为命令替换。@Lamar我想您已经解决了这个问题。如果没有,请告诉我。另外,如果这解决了您的问题,请将我的回答标记为回答您的问题,这样这个问题就不会继续在未回答的队列中出现。@DavidC.Rankin您的评论可能比回答更好。@DavidC.Rankin抱歉,它实际上不起作用。也许我会更简化它。在变量X中,我有用换行符分隔的数字,需要将其转换为数组,这样我就能够提取单个值。X=1\n2\n3\n4\n5\n我使用tr函数将它们转换为数组tr'\n'',您建议的方式,但对我不起作用。