当前位置: 技术问答>linux和unix
100分请教高手如何把shell的命令输出保存为一个数组
来源: 互联网 发布时间:2016-12-08
本文导语: 如题,我用如下命令: declare -a cmd_result cmd_result="$(history 10 |sort -r)"; echo ${cmd_result[@]} 想把shell的命令输出保存为一个数组;但结果只是一个字符串 请教高手,如何把shell命令的输出直接保存为...
如题,我用如下命令:
想把shell的命令输出保存为一个数组;但结果只是一个字符串
请教高手,如何把shell命令的输出直接保存为一个数组? 谢谢!
declare -a cmd_result
cmd_result="$(history 10 |sort -r)";
echo ${cmd_result[@]}
想把shell的命令输出保存为一个数组;但结果只是一个字符串
请教高手,如何把shell命令的输出直接保存为一个数组? 谢谢!
|
cmd_result=($(history 10 |sort -r));
|
|
+1
其实shell的强项不在这里,可以考虑perl,python的列表实现
|
echo ${cmd_result[@]}
这样输出就是字符串啊,实际上不就已经保存长数组了吗
这样输出就是字符串啊,实际上不就已经保存长数组了吗
|
其实你说的数组,在某种意义上不就变成了字符串的形式输出了,你想要个什么结果,举个列子说明下
|
[root@dylan ~]# a=($(history 10|awk '{print $2}'|tr 'n' " "))
[root@dylan ~]# echo ${a[2]}
试试这个
[root@dylan ~]# echo ${a[2]}
试试这个
|
楼上这样做cmd_result=($(history 10 |sort -r));
只是把全部的字符串化为一个a[0],也是a[@],但是无法饮用a1 a2 , 每条命令把n 转化就行了,shell的数组比较麻烦, 如果写个函数来调用数组就更麻烦,但是还是可以实现的。
只是把全部的字符串化为一个a[0],也是a[@],但是无法饮用a1 a2 , 每条命令把n 转化就行了,shell的数组比较麻烦, 如果写个函数来调用数组就更麻烦,但是还是可以实现的。
|
其实就是竖着变横着就可以了,我平常就是这样用的