V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
jmyz0455
V2EX  ›  Bash

如何获取命令标准输出到变量里并保留颜色?或者能不能一边输出一边赋值或判断。

  •  
  •   jmyz0455 · 2021-02-24 11:55:53 +08:00 · 807 次点击
    这是一个创建于 1371 天前的主题,其中的信息可能已经有所发展或是发生改变。

    我有一段 bash shell script,需要循环用到好几个命令,这些命令的输出本身就是带颜色的,比如 ls 命令。

    但是如果 ls 的输出为空,那么我需要提前结束循环,要注意的是如果非空,一定要输出原有命令的颜色,不然看得眼花。

    所以我的需求是,既能调用一个命令,输出带颜色的结果,又能在命令输出为空时,不输出了,跳出循环。

    想到几种解决方案:

    1. 用变量获取命令输出,先判断非空,再用 echo -e 输出,结果发现输出的是纯文本,颜色丢失了。
    2. 直接运行命令,输出颜色文本的同时,赋值到某个变量,但是不知道怎么弄。
    3. 直接运行命令,用管道接口结果,判断输出是否为空,非空就输出,空就跳出循环,但是用 xargs 好像也不太对。

    我这个需求能实现吗?请问思路哪里不对,还是方法错了?

    目前尚无回复
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   5839 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 29ms · UTC 03:04 · PVG 11:04 · LAX 19:04 · JFK 22:04
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.