2011-10-17 70 views
3

可能重複:
Unix command-line JSON parser?JSON配置來砸變量

如果我有JSON配置文件和PHP腳本配置文件拼合弄成這個樣子

database_dbname=sensei 
database_password=somerandompassword 
memcached_host=localhost 
.... 

我可以將此管道傳輸到我的bash腳本中,並將上面的每個條目作爲變量進行操作嗎?

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

所以,在我的bash腳本我可以使用值從配置文件

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

回答

5

bash,你可以在你的腳本文件的寫入

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-understand.html – Jeffrey04

+2

+1。括號是正確的:這是[bash進程替換](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"]``