我正在使用ash shell(不是bash)开发一个小脚本。
现在我有一个具有以下组成的变量:
VARIABLE = "number string status"
其中number可以是任意数字(实际上在1到18之间,但将来该数字可能更高)字符串是一个名称,状态是或开或关 名称通常只是小写字母。
现在我的问题是只读取变量中的字符串内容,删除数字和状态。
我如何获得?
答案 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