アカウント名:
パスワード:
http://d.hatena.ne.jp/dharry/20090211/1234290856 [hatena.ne.jp]
#! /bin/bash AFO='hoge:hage:hure' a=${AFO%%:*}bsub=${AFO#*:}b=${bsub%:*}c=${AFO##*:} echo $aecho $bsubecho $becho $c
ただ、移植性が悪くなることと、あまり柔軟性がない点は覚悟が必要。それなら
#! /bin/bash AFO='hoge:hage:hure' d=$(echo ${AFO} | sed -r 's/([^:]*):([^:]*):([^:]*)/\1/')e=$(echo ${AFO} | sed -r 's/([^:]*):([^:]*):([^:]*)/\2/')f=$(echo ${AFO} | sed -r 's/([^:]*):([^:]*):([^:]*)/\3/') echo $decho $eecho $f
と
アドバイスありがとうございます。
最初の例については、shibuyaさんのバージョンと同様に、str3にコロンが入ってくる形だとうまくいかなくなってしまいますね。後者のsedを使うバージョンについては、s/([^:]*):([^:]*):(.*)/……/とすれば対応可能そうです。本文に書いた、cutを使う方法と同様に、同じようなコマンドが連続するのが気になりますが、evalと組み合わせれば1回で済みそうですね。
eval $(echo "$v" | sed -r 's/([^:]*):([^:]*):(.*)/a='\''\1'\''; b='\''\2'\''; c='\''\3'\'';/')
……て、わかりづらいな。3日後にこれを解読できる自信がありません(汗
あ。vにシングルクォートを含めたら破綻した(- -;;
より多くのコメントがこの議論にあるかもしれませんが、JavaScriptが有効ではない環境を使用している場合、クラシックなコメントシステム(D1)に設定を変更する必要があります。
アレゲはアレゲを呼ぶ -- ある傍観者
bash独自のパラメータ展開という手はある (スコア:1)
http://d.hatena.ne.jp/dharry/20090211/1234290856 [hatena.ne.jp]
ただ、移植性が悪くなることと、あまり柔軟性がない点は覚悟が必要。それなら
と
fjの教祖様
Re: (スコア:1)
アドバイスありがとうございます。
最初の例については、shibuyaさんのバージョンと同様に、str3にコロンが入ってくる形だとうまくいかなくなってしまいますね。
後者のsedを使うバージョンについては、s/([^:]*):([^:]*):(.*)/……/とすれば対応可能そうです。
本文に書いた、cutを使う方法と同様に、同じようなコマンドが連続するのが気になりますが、evalと組み合わせれば1回で済みそうですね。
……て、わかりづらいな。3日後にこれを解読できる自信がありません(汗
巧妙に潜伏したバグは心霊現象と区別が付かない。
Re:bash独自のパラメータ展開という手はある (スコア:1)
あ。vにシングルクォートを含めたら破綻した(- -;;
巧妙に潜伏したバグは心霊現象と区別が付かない。