2

次のようなものを出力するプログラムがあります。

stuff=Some text with spaces and other $pecial characters stuff2=1 stuff3=0

変数で stuff2=1 までのすべての文字列を取得しようとしているので、変数は次のようになります。

stuff=Some text with spaces and other $special characters

私はこれを試しました:

for word in $output
while [ $word != "stuff2=1" ]
do
   var+=" "$word
done
done

しかし、私が得るのは「stuff = Some」だけです。

4

4 に答える 4

2

bash自体で実行できます

stuff=${stuff/stuff2=1*/}
于 2013-04-27T16:48:52.393 に答える
2

これはどう?

stuff='Some text with spaces and other $pecial characters stuff2=1 stuff3=0'

var=""
for word in $stuff
do
  if [ "$word" == "stuff2=1" ]
     then
    break
  fi
  if [ "$var" != "" ]
  then
    var="${var} "
  fi
  var="${var}${word}"
done
echo "$var"
于 2013-04-27T01:07:44.650 に答える
0
$ eval $(sed "s/=/='/;s/ [^ ]*=.*/'/")
$ エコー $ スタッフ
スペースやその他の $special 文字を含むテキスト
于 2013-04-27T01:25:53.850 に答える