首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >这是fsarchiver --版本中的错误吗?

这是fsarchiver --版本中的错误吗?
EN

Unix & Linux用户
提问于 2019-01-13 13:33:36
回答 1查看 72关注 0票数 0

我了解到,为了捕获Unix命令的输出,应该使用以下内容

代码语言:javascript
复制
RESULT=$(command in question)

我想将fsarchiver的版本捕获到变量RESULT,因为前一个选项-z of fsarchiver已被废弃。对于0.8.4版(Ubuntu18.04LTS下使用的版本),应该使用-Z。为了在我的脚本中应用正确的压缩级别,它必须区分当前版本的fsarchiver

所以我试了一下:

代码语言:javascript
复制
$ RESULT=$(fsarchiver --version)
fsarchiver 0.6.22 (2016-02-13)
$ echo "${RESULT}"

$

所以这个只返回一个空行。但是,我可以以这种方式确定ls的版本,因此我确信不会完全误解将命令的输出捕获到bash脚本中的变量:

代码语言:javascript
复制
$ RESULT=$(ls --version)
$ echo "${RESULT}"
ls (GNU coreutils) 8.25
Copyright © 2016 Free Software Foundation, Inc.
Lizenz GPLv3+: GNU GPL Version 3 oder höher 
Dies ist freie Software: Sie können sie ändern und weitergeben.
Es gibt keinerlei Garantien, soweit wie es das Gesetz erlaubt.

Geschrieben von Richard M. Stallman und David MacKenzie.
$

为什么lsfsarchiver在要求它们的版本时在捕获它们的结果方面有不同的行为?

EN

回答 1

Unix & Linux用户

回答已采纳

发布于 2019-01-13 13:57:19

fsarchiver将其版本信息写入其标准错误,ls写入其标准输出。哪一个是正确的,这是一个争论的问题;相关的讨论见进度报告/日志记录信息属于stderr还是stdout。在您的例子中,ls很可能是GNU版本,以及GNU编码标准要求编写版本信息以进行标准输出

您可以使用

代码语言:javascript
复制
RESULT=$(fsarchiver --version 2>&1)
票数 2
EN
页面原文内容由Unix & Linux提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://unix.stackexchange.com/questions/494250

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档