Shell脚本:如何只读取变量中的一部分文本

时间:2012-01-13 23:10:21

标签: shell ash

我正在使用ash shell(不是bash)开发一个小脚本。

现在我有一个具有以下组成的变量:

VARIABLE = "number string status"

其中number可以是任意数字(实际上在1到18之间,但将来该数字可能更高)字符串是一个名称,状态是或开或关 名称通常只是小写字母。

现在我的问题是只读取变量中的字符串内容,删除数字和状态。

我如何获得?

4 个答案:

答案 0 :(得分:4)

两种方式;一个是利用$IFS并使用while循环 - 这对于一行非常愉快 - 如下:

echo "Part1 Part2 Part3" | while read a b c
do
    echo $a
done

或者,使用cut如下:

a=`echo $var | cut -d' ' -f2`
echo $a

答案 1 :(得分:3)

如何使用cut

name=$(echo "$variable" | cut -d " " -f 2)

<强>更新

显然,Ash不理解$(...)。希望你能做到这一点:

name=`echo "$variable" | cut -d " " -f 2`

答案 2 :(得分:1)

怎么样:

name=$(echo "$variable" | awk '{print $2}')

答案 3 :(得分:1)

#!/bin/sh
myvar="word1 word2 word3 wordX"
set -- $myvar

echo ${15}    # outputs word 15