2011-10-17 11 views
3
をbashに

可能性の重複:
Unix command-line JSON parser?JSONの設定は、変数

私は、JSONのconfigファイルと、この

のようなものに設定ファイルを平坦化するPHPスクリプトを使用している場合
database_dbname=sensei 
database_password=somerandompassword 
memcached_host=localhost 
.... 

これを私のbashスクリプトにパイプして、上記の各エントリを変数にすることはできますか?

./bin/flatten_config.php config.json | ./bin/my_bash_script.sh 

ので、それは私のbashスクリプトでは、私はあなたのスクリプトファイルに書くことができますbashでは、configファイルから

mysql -D${database_dbname} -p${database_password} ... 

答えて

5

を値を使用することができます

source <(./bin/flatten_config.php config.json) 

bashかかりますflatten_config.phpの出力とそれを入力として解析する

+0

ニースの回答、+1。しかし、ブラケットについてはわからない。 –

+0

ブラケットについてはわかりませんが、手がかりを感謝します:)ここでソースコマンドについてもう少し分かっています。http://www.unix.com/shell-programming-scripting/54347-bash-shell-exec-eval- source-looking-help-understanding.html – Jeffrey04

+2

+1。かっこは正しい:これは[bash process substitution](http://www.gnu.org/software/bash/manual/bashref.html#Process-Substitution) –

2

Checkou t TickTick

真のBash JSONパーサーです。

#!/bin/bash 
. /path/to/ticktick.sh 

# File 
DATA=`cat data.json` 
# cURL 
#DATA=`curl http://foobar3000.com/echo/request.json` 

tickParse "$DATA" 

echo ``pathname`` 
echo ``headers["user-agent"]``