2013-08-28 69 views
3

我有一个bash列表(空格分隔的字符串),我只是想从中提取第一个字符串。如何从bash列表中获取第一个字符串?

例子:

VAR="aaa bbb ccc" -> i need "aaa" 
VAR="xxx" -> i need "xxx" 

有没有其他诀窍不是使用与休息?

+5

我不明白你的第二个例子...... – Juto

+1

@Juto固定,感谢议论它:) – sorin

回答

6

试试这个格式:

echo "${VAR%% *}" 

另一种方法是:

read FIRST __ <<< "$VAR" 
echo "$FIRST" 
+2

您的意思是使用##?不应该是%%吗? –

+0

@ IanM_Matrix1哦,是的,谢谢:) – konsolebox

+0

这(参数扩展)是最干净的解决方案。当然,除了首先使用数组之外。 –

4

也许用切割?

echo $VAR | cut --delimiter " " --fields 1  #number after fields is the 
               #index of pattern you are retrieving 
1

在这个时刻只有工作,在Linux和OS X的解决方案是:

IP="1 2 3" 
for IP in $IP: 
do 
    break 
done 

如果你有一个更好的答案,我会很乐意把它捡起。

+0

刚刚检查,如果切在Mac OS中,发现[这](http://stackoverflow.com/questions/1211943/extract-text-from-hostname) – Juto

+0

'切'存在,但它是不一样的,相当老其中一个。 – sorin

+0

我不确定你的意思是相当老的,它仍然有效吗?我猜如果它有效,剪切等程序不需要每个月更新一次? – Juto

2

我不知道怎样的标准是这样的,但如果你想数组,使用数组这部作品在猛砸4.1.11

NewVAR=($VAR) 
echo $NewVAR 
3

。 ;)

VAR=(aaa bbb ccc) 
echo ${VAR[0]} # -> aaa 
echo ${VAR[1]} # -> bbb 
相关问题