5

我确实有一个 Bash 列表(空格分隔的字符串),我只想从中提取第一个字符串。

例子:

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

除了使用forbreak之外,还有其他技巧吗?

4

5 回答 5

7

试试这种格式:

echo "${VAR%% *}"

另一种方法是:

read FIRST __ <<< "$VAR"
echo "$FIRST"
于 2013-08-28T11:16:33.103 回答
7

使用剪切

echo $VAR | cut --delimiter " " --fields 1  # Number after fields is the 
                                            # index of pattern you are retrieving
于 2013-08-28T11:23:34.070 回答
6

如果需要数组,请使用数组。;)

VAR=(aaa bbb ccc)
echo ${VAR[0]} # -> aaa
echo ${VAR[1]} # -> bbb
于 2013-08-28T11:35:30.033 回答
5

我不确定这是多么标准,但这在 Bash 4.1.11 中有效

NewVAR=($VAR)
echo $NewVAR
于 2013-08-28T11:32:37.570 回答
1

目前,在 Linux 和 OS X 上唯一有效的解决方案是:

 IP="1 2 3"
 for IP in $IP:
 do
   break
 done
于 2013-08-28T11:30:43.453 回答