linux - 如何在 Linux 上运行命令并将输出保存在变量中

标签 linux bash jenkins

我使用 node.js 和 mocha 插件。 我需要从 Jenkins 运行测试。

测试目录是'/home/user/tests' 通过腻子,我可以启动命令“make all”来运行测试并获得结果。 我如何从 bash 脚本运行它?

我在文件“start.sh”中创建了脚本:

    #!/bin/bash

    DIR=$(cd /home/user/tests; make all)

    echo "-----------------------START----$stDate--------------------"
    echo $DIR
    echo "------------------------END-----$enDate--------------------"

在这种情况下结果是

    08:10:58  SSH: EXEC: STDOUT/STDERR from command [start.sh] ...
    08:10:59  /bin/sh: mocha: command not found
    08:10:59  /bin/sh: mocha: command not found
    08:10:59  /bin/sh: mocha: command not found
    08:10:59  /bin/sh: line 0: cd: ./messagel: No such file or directory
    08:10:59  -----------------------START----Mon Sep  3 08:11:00 EDT                 2012--------------------
    08:10:59  cd ./tenant; mocha; cd ../; cd ./user; mocha --reporter list; cd ../; cd ./asset; mocha; cd ../; cd ./messagel mocha -t 5000; cd ../;
    08:10:59  ------------------------END-----Mon Sep  3 08:11:00 EDT 2012--------------------
    08:10:59  SSH: EXEC: completed after 401 ms

但这包含在文件“makefile”中并且没有运行 cd ./租户;摩卡;裁谈会../;光盘./用户; mocha——记者名单;裁谈会../;光盘./ Assets ;摩卡;裁谈会../; cd ./messagel mocha -t 5000;光盘../;

最佳答案

您的 DIR 变量只包含部分输出的事实可能是因为 cd/home/user/tests;将所有 输出到 stderr 而不是 stdout。

尝试:

DIR=$(cd /home/user/tests; make all >& /dev/stdout)

确保在 DIR 变量中捕获正常输出和错误输出。

另一种可能是

DIR=$(cd /home/user/tests; make all 2>&1 )

除了它直接操作文件描述符外,它几乎做同样的事情。更多信息 here .

另请注意,这只会重定向 make all 的输出。换句话说,如果 /home/user/tests 不存在,错误消息将不会被 $( )

捕获

关于linux - 如何在 Linux 上运行命令并将输出保存在变量中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12247818/

相关文章:

linux - Hadoop错误日志jvm sqoop

c - Linux block 系统调用

ruby-on-rails - 为什么 ENV ["HOME"] nil 在我的 rake 任务中?

linux - 如何知道dd何时完成

C++ 构建工件管理

jenkins - 如何从 Jenkins 触发 XL Release 任务?是否可以?

linux - 我需要计算文件中第一个字段中的符号数量,并将它们与另一个字段相加

python - 从 python 日志记录中捕获 "Out of memory error"

linux - Ubuntu/Linux 庆典 : traverse directory and subdirectories to work with files

java - 如何通过命令提示符和使用 Maven 的 jenkins 运行单个 cucumber 功能文件?