我在构建一个bash脚本,它从GeekTool获取信息并分析结果。迄今脚本看起来像这样:在bash中解析数组时出现了奇怪的结果
1 #!/bin/bash
2
3 clear
4
5 geeklets=`osascript <<TEXT
6 Tell Application "GeekTool Helper"
7 geeklets
8 End Tell
9 TEXT`
10
11 IFS="," read -a geekletArray <<< "$geeklets"
12
13 echo "First Element in Array:"
14 echo ${geekletArray[0]}
15
16 echo ""
17
18 echo "All Array Elements:"
19 for element in ${geekletArray[@]}
20 do
21 echo $element
22 done
在管线14余回声出它返回该阵列的第一个元素:
shell geeklet id 49610161-0A3C-49C6-9626-694370DE3101
但在穿过步骤的循环的第一次迭代阵列(21行),所述第一元件阵列返回这样的:
shell
geeklet
id
49610161-0A3C-49C6-9626-694370DE3101
在回路中的元件在一个换行返回分隔列表。
为什么会有差异?另外,如果我想只抓取数组的id值(例如49610161-0A3C-49C6-9626-694370DE3101
),我将如何处理它?
谢谢!
'对于$ {array [@]}中的元素'' - 双引号是强制性的。 –
...另请参阅http://shellcheck.net/ –