2013-08-28 67 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 
相關問題