在rails中运行shell脚本只输出1行

时间:2014-01-16 20:39:18

标签: ruby-on-rails git bash shell

我正在尝试让rails控制器从位桶上的repo中提取最新内容。在大多数情况下,这是一个成功我测试时唯一的问题我似乎只能让页面输出脚本返回的第一行,而且似乎没有运行脚本的其余部分任何想法

这是我的bash脚本

#!/bin/bash -l
GIT_REPO='IMAREPO'
TMP_GIT_CLONE=TEMPPATH
PUBLIC_WWW=SITEPATH

if [ -d $TMP_GIT_CLONE ]; then
   rm -Rf $TMP_GIT_CLONE
fi
git clone $GIT_REPO $TMP_GIT_CLONE
jekyll build --source $TMP_GIT_CLONE --destination $PUBLIC_WWW
rm -Rf $TMP_GIT_CLONE
exit

并且在轨道控制器中我正在做

@result = %x[/var/srv/pulldevelopment.sh]

反过来只从脚本中放出一行

  

克隆到'/ root / tmp / git / blah'...

1 个答案:

答案 0 :(得分:1)

是的,这是预料之中的。默认情况下,如果stderr连接到TTY,Git仅打印进度状态。您可以在终端中使用以下内容重现此行为:

$ git clone $GIT_REPO 2>&1 | cat

传递--progress以始终在stderr流上获取进度状态。请参阅git-clone(1)