1

私は(bashではなく)ashシェルを使用して小さなスクリプトを開発しています。

今、私は次の構成の変数を持っています:

VARIABLE = "number string status"

ここで、数値は任意の数値(実際には1から18の間ですが、将来的にはその数値より大きくなる可能性があります)であり、文字列は名前であり、ステータスはオンまたはオフです。名前は通常小文字のみです。

ここでの私の問題は、変数の文字列の内容のみを読み取り、数値とステータスを削除することです。

どうすれば入手できますか?

4

4 に答える 4

4

ふたつのやり方; 1つは、whileループを活用$IFSして使用することです。これは、1行で非常にうまく機能します。

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

または、次のように使用cutします。

a=`echo $var | cut -d' ' -f2`
echo $a
于 2012-01-13T23:18:43.140 に答える
3

使ってcutみませんか?

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

アップデート

どうやら、アッシュは理解していません$(...)。うまくいけば、代わりにこれを行うことができます:

name=`echo "$variable" | cut -d " " -f 2`
于 2012-01-13T23:13:46.500 に答える
1

どうですか:

name=$(echo "$variable" | awk '{print $2}')
于 2012-01-14T05:22:13.543 に答える
1
#!/bin/sh
myvar="word1 word2 word3 wordX"
set -- $myvar

echo ${15}    # outputs word 15
于 2012-12-13T09:21:44.550 に答える