1
我有一段相当复杂的bash脚本来运行不同的配置,并安装了大量的Oracle模式,在此期间我需要调用“liquibase”这是一个Java软件。使用bash脚本(liquibase)重定向java输出
我想要做的是完全沉默liquibase的输出,并根据输出有条件地处理这些输出。
我尝试用下面的方式做这个
#!/bin/bash
output=$(liquibase --"lots of parameters here") > /dev/null 2> /dev/null
echo "from the variable:$output"
这确实同“一些”输出的一部分,在我的变量,但仍显示在屏幕上的其它部分。例如,我得到:
Liquibase 'status' Successful
from the variable:[email protected]:oracle:thin:@localhost is up to date
正如你可以看到“Liquibase‘状态’成功”是不保存在我的变量,并直接写入到屏幕。
那么,如何将所有输出重定向/保存到变量而不是将其转储到屏幕?
哇,这么简单,和往常一样,我有点愚蠢:) – kali
只是一个侧面的问题,你认为我可以重定向标准输入变量和stderror到另一个变量,而无需运行liquibase命令两次 – kali
@kali [这个问题](http://stackoverflow.com/questions/11027679/bash-store-stdout-and-stderr-in-different-variables)可能会回答你想要的。 – devnull