当我尝试这样做时:
LPPCHK=`lppchk -v`
if [[ "$LPPCHK" != "" ]]
then
echo "$LPPCHK"
fi
但是当它到达变量时它始终运行“lppchk”,将它回显到屏幕并且不将它保存在变量中...... ??这是我见过的唯一一个这样做的命令,全部其他人在这种情况下工作正常..
思想?
答案 0 :(得分:1)
代码完成你的要求:
在子shell中执行lppchk -v
,捕获stdout(正常输出)并将其放入变量LPPCHK中。
检查LPPCHK是否已填满并回显内容
那么为什么在if语句之前看到lppchk -v
的结果呢?
当lppchk -v
将其输出写入stderr时,您仍会在屏幕(控制台)上看到它。您可以使用
LPPCHK=`lppchk -v 2>&1`
# Another notation, using $() and avoiding backtics
LPPCHK=(lppchk -v 2>&1)
# Also consider using lowercase shell variables