14

いくつかのphpスクリプトを実行して結果を返す必要があるbashスクリプトがあります。

#!/bin/bash
/usr/bin/php -f $HOME/lib/get_fifobuild.php

スクリプト get_fifobuild.php は、bash 変数に割り当てる必要がある整数を返します。誰かが私を助けてくれれば幸いです。

ありがとう :)

編集: php show.php

<?php 
  echo phpinfo();
  exit;
?>

バッシュスクリプト:

#!/bin/bash
HOME=`dirname $0`;
log(){
    NEW_LOG=$HOME/logs/cloud-`date +%d_%m_%Y`.log
    echo $1 >> $NEW_LOG
}
log "Date: `date`";
data=$(/usr/bin/php -f  $HOME/lib/show.php);
log $data;

出力:

Date: Fri Jun 15 19:16:00 PKT 2012
phpinfo()

まだ運がない

4

2 に答える 2

12
myvariable=$(/usr/bin/php -f $HOME/lib/get_fifobuild.php)

phpスクリプトからの出力を「myvariable」という変数に割り当てます。

更新

これにより、コマンドの出力が変数に割り当てられますが、まだ問題が発生しているため、おそらくいくつかのことを提案できます。

  1. 他に「get_builds.php」と「get_fifobuild.php」があります。

  2. $HOMEが正しく設定されていることを確認してください。その環境変数は通常、ホームディレクトリに設定されているため、ここでは別の変数名を使用した方がよい場合があります。ただし、スクリプトから出力を取得しているため、これが問題になる可能性はほとんどありません。

  3. あなたが与えたテキストはあなたのPHPファイルの正確な内容ですか?たとえば、引用符phpinfo()がある場合、出力は文字列「phpinfo()」になります。実際、あなたはまったく必要ではなく、echo次のようにあなたのPHPファイルの内容を作ることができます。

get_fifobuild.php:

<?php
    phpinfo();
?>

アップデート2:

スクリプトを次のように変更してみてください。

#!/bin/bash
HOME=`dirname $0`;
log(){
    NEW_LOG=$HOME/logs/cloud-`date +%d_%m_%Y`.log
    echo "$1" >> $NEW_LOG
}
log "Date: `date`";
data=$(/usr/bin/php -f $HOME/lib/show.php);
log "$data";

基本的に、「log」行と「echo」行の変数を二重引用符で囲みます。あなたが抱えていた問題は、php出力の最初の行だけがログに記録されていたということでした。

于 2012-06-15T12:59:47.257 に答える
0
foobar=`/usr/bin/php -f $HOME/lib/get_fifobuild.php`

注: これらはバックティックです。

于 2012-06-15T13:00:05.610 に答える