我有一个名为 deploy.sh
的shell脚本,其内容如下:
echo "0 Importing the code"
eval "git pull -u origin master"
echo "1 Backing up existing data in database.."
// -- other code follows here
当我直接在终端中执行脚本时,会得到以下输出结果:-
0 导入代码
remote: 计算对象数目:5,完成。 remote: 压缩对象:100%(2/2),完成。 remote: 共计 3(delta 1),复用 0(delta 0) 解压对象:100%(3/3),完成。 来自 bitbucket.org:user/repo * 分支 master -> FETCH_HEAD 更新 db13xxx..6705xxx
1 在数据库中备份现有数据...这是正确的。然而,我编写了一个PHP脚本,可以通过http调用deploy.sh脚本。该php页面的内容如下:-
$output = `./deploy.sh`;
echo '<pre>', $output, '</pre>';
当我通过浏览器调用这个PHP文件时,shell脚本实际上被调用了,我得到了以下输出:
0 导入代码 1 备份数据库中的现有数据..问题在于
eval "git pull -u origin master"
命令没有被执行,而且它的输出也没有显示出来。你知道问题出在哪里吗?
eval
是必要的吗?你不能只运行echo '0'; git pull -u origin master
; echo '1'` 等命令吗? - Armand#!/bin/bash
了吗? - Armand