Distributions
Ubuntu
Fedora
CentOS
中文资源站
网易开源镜像站
ivito
V2EX  ›  Linux

在 bash 脚本中回车符号被忽略

  •  
  •   ivito ·
    fireboyvt · Jan 12, 2016 · 4178 views
    This topic created in 3800 days ago, the information mentioned may be changed or developed.
    在 bash 中直接执行 ps 获得以下结果:
    PID TTY TIME CMD
    8131 pts/19 00:00:00 bash
    8159 pts/19 00:00:00 zsh
    9907 pts/19 00:00:00 ps
    18350 pts/19 00:00:00 php
    18353 pts/19 00:00:00 php
    18362 pts/19 00:00:00 php
    而如果执行如下脚本
    process=$(ps)
    echo $process
    获得的结果如下:
    ID TTY TIME CMD 8131 pts/19 00:00:00 bash 8159 pts/19 00:00:00 zsh 9755 pts/19 00:00:00 sh 9756 pts/19 00:00:00 ps 18350 pts/19 00:00:00 php 18353 pts/19 00:00:00 php 18362 pts/19 00:00:00 php
    回车不见了,这是为什么呢?
    3 replies    2016-01-12 21:02:48 +08:00
    jsfaint
        2
    jsfaint  
       Jan 12, 2016 via Android
    是 echo 后边的都被当做一行了……
    实际上那个$process 是有换行的。
    for line in $process
    do
    echo $line
    done
    就可以分别显示每行内容
    ivito
        3
    ivito  
    OP
       Jan 12, 2016
    @18000rpm 1 楼正解,不加引号的话 echo 把$process 分割成好多个参数了
    @jsfaint 确实,用 for 循环的话可以换行,但是输出格式全乱了, for 会把空格什么的都当成分割符号
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   3328 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 34ms · UTC 10:57 · PVG 18:57 · LAX 03:57 · JFK 06:57
    ♥ Do have faith in what you're doing.