http://reval-mocchi.rhcloud.com

shellで文字列を分割し,配列にする

やりたいこと

$ add-export RBENV_HOME=$HOME/.rbenv
#=> ~/.export/RBENV_HOME/export.zsh
$ cat ~/.export/RBENV_HOME/export.zsh
#=>export RBENV_HOME=/Users/mocchi/.rbenv

option:enable style:terminal

function add-exportでは,引数に渡されたRBENV_HOME=$HOME/.rbenv=で分割する. 分割した値でディレクトリを作成し,そのディレクトリ内へファイルを作成・値の書き込みをしたい.

解決方法

sedを使い=を空白へ置き換える. その結果をevalで評価して配列にする. あとはそのまま値を使えば良い.

add-export(){
  str=$(echo $1 | sed 's/=/ /')
  eval "array=($str)"
  mkdir -p ~/.export/$array[1]/
  ...
  ...
}