0

我需要跑步

评估“php /srv/www/scripts/mage/install-invoke-app.php”

它找到了文件,但最终得到 在此处输入图像描述

<?php这在右边搞砸了。为什么?那是怎么固定的?到目前为止,谷歌搜索还没有得出正确的答案。


更新 简而言之,这是一个脚本,它是一个函数,然后我传递一个回调.. 有很多东西被剥离了,所以只有区域。

在包括 base.sh 脚本中

cd /srv/www/
. scripts/install-functions.sh
#tons of other stuff
cd /srv/www/
. scripts/mage-install.sh   

在 install-functions.sh

install_repo(){
    if [ $2 ]
    then
        echo "just 1"
        git clone $1 -q
    else
        echo "just 1 and 2"
        git clone $1 $2 -q
    fi
    success=$?
    if [[ $success -eq 0 ]];
    then
        echo "Repository successfully cloned."
        echo "cleaning"
        cd $r/
        rm -rf LICENSE.txt STATUS.txt README.md RELEASE_NOTES.txt modman
        cd ../
        cp -af $r/* .
        rm -rf $r/
        if [ -z "$3" ]
        then
            echo "no callback"
        else
            eval $3
        fi
    else
        echo "Something went wrong!"
    fi
    sleep 1 # slow it down to insure that we have the items put in place.
}

#declare -A list = ( [repo]=gitUser )
install_repolist(){
    gitRepos=$1
    for r in "${!gitRepos[@]}" #loop with key as the var
    do
        giturl="git://github.com/${gitRepos[$r]}/$r.git"
        echo "Adding $r From $giturl"
        if [ -z "$r" ];
        then
            echo
        else
            install_repo $giturl $2 $3
        fi
        echo
    done
    return 1
}

在脚本/mage-install.sh

declare -A gitRepos
#[repo]=gitUser
gitRepos=(
    [wsu_admin_base]=jeremyBass
    [wsu_base_theme]=jeremyBass
    [Storeutilities]=jeremyBass
    [StructuredData]=jeremyBass
)
cd /srv/www/mage/
install_repolist $gitRepos 0 "php /srv/www/scripts/mage/install-invoke-app.php"
unset gitRepos         #unset and re-declare to clear associative arrays
declare -A gitRepos

这就是这里的基本循环。我需要回调一个函数,但是 install_repolist 也用于其他领域,所以我无法对其进行硬编码。如果有更好的方法然后评估,酷

4

1 回答 1

0

您的脚本仍有某些部分我不理解,或者不确定它是否真的有效,但是关于您的问题,我认为您的回调只有在您将其放在如下函数上时才能起作用:

function mycallback {
    php /srv/www/scripts/mage/install-invoke-app.php
}

并将您的install_repolist功能称为

install_repolist $gitRepos 0 mycallback

那应该使您的 php 命令调用与 file 参数起作用,但有一件事:我认为gitRepos实际上不能像那样传递值。

您的代码的大多数部分都有实际需要在双引号周围引用的变量""。它的一个问题是,您的 php 命令最终会出现在作为单个参数执行的最终位置,并且php由于分词而不再与文件一起执行。

于 2013-09-14T01:41:30.783 回答