다른 Bash 변수

다른 Bash 변수

dateFromPHP 명령을 평가하는 변수 내의 변수를 평가하려고 합니다 .dateCalc

dateFrom="2013-01-05"
dateCalc=$(php -r '$date = new DateTime($dateFrom);echo $date->add(DateInterval::createFromDateString("-2 days"))->format("Y-m-d");')

실제 스크립트에서 날짜는 동적 변수입니다.

dateFromPHP 명령의 내부를 평가할 수 있는 방법이 있습니까 ? 가능하지 않다면 다른 방법으로 PHP 명령의 동일한 결과를 얻을 수 있는 방법이 있습니까? 다른 쉘 명령?

답변1

일반적으로 환경을 통해 또는 명령줄 인수로 변수를 전달하는 것이 가장 좋습니다.

$ export myvar=foobar
$ php -r 'printf("envvar is \"%s\"\n", getenv("myvar"));'
envvar is "foobar"

또는

$ myvar=foobar php -r 'printf("envvar is \"%s\"\n", getenv("myvar"));'
envvar is "foobar"

또는

$ php -r 'printf("arg is \"%s\"\n", $argv[1]);' foobar
arg is "foobar"

때를할 수 있다변수 데이터를 PHP 스크립트 자체에 포함시키는 것은 좋지 않은 생각입니다. 값이 올바르게 인용되었는지 확인하지 않으면 모든 값이 PHP 구문과 혼동될 수 있기 때문입니다.


즉, 이틀 전의 날짜만 얻으려면 GNU 날짜를 사용하면 됩니다.

$ date -d '2013-01-05 - 2 days' +%F
2013-01-03

또는 n변수에 저장된 YYYY-MM-DD 형식의 날짜 전 일수:

$ dateFrom=2013-01-05 n=7
$ date -d "$dateFrom - $n days" +%F
2012-12-29

관련 정보