我正在使用 ash shell(不是 bash)开发一个小脚本。
现在我有一个具有以下组成的变量:
VARIABLE = "number string status"
其中 number 可以是任何数字(实际上介于 1 和 18 之间,但将来该数字可能更高)字符串是名称,状态是或 on 或 off 名称通常只有小写字母。
现在我的问题是只读取变量中的字符串内容,删除数字和状态。
我怎样才能得到它?
两种方式;一种是利用$IFS
和使用一个while循环——这将非常愉快地适用于单行——如:
echo "Part1 Part2 Part3" | while read a b c
do
echo $a
done
或者,使用cut
如下:
a=`echo $var | cut -d' ' -f2`
echo $a
怎么用cut
?
name=$(echo "$variable" | cut -d " " -f 2)
更新
显然,阿什不明白$(...)
。希望你可以这样做:
name=`echo "$variable" | cut -d " " -f 2`
#!/bin/sh
myvar="word1 word2 word3 wordX"
set -- $myvar
echo ${15} # outputs word 15
怎么样 :
name=$(echo "$variable" | awk '{print $2}')