2011-10-17 3 views
3
를 비난하는

가능한 중복 :
Unix command-line JSON parser?JSON의 설정 변수

내가 JSON의 설정 파일이

처럼 무언가로 설정 파일을 평평하게하는 PHP 스크립트가있는 경우
database_dbname=sensei 
database_password=somerandompassword 
memcached_host=localhost 
.... 

이 코드를 my 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 프로세스 대체] (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"]``