chaoshu的个人博客分享 http://blog.sciencenet.cn/u/chaoshu

博文

【Shell】echo不显示变量中的多个空格

已有 3658 次阅读 2021-2-28 14:35 |个人分类:Ubuntu|系统分类:科研笔记

    Shell中echo变量时,变量中的多个空格只打印了一个,如下

    $ tmp="a    b    d"
    $ echo $tmp
    a b d
  • 解决办法是给变量加上双引号",如下


  • $ tmp="a    b    d"
    $ echo "$tmp"
    a    b    d


    至于原因,需要了解shell的解析过程:

    1. 替换变量

    2. 执行命令

    3. 按IFS划分命令之后的参数,用""和''包围的部分作为命令的一个参数。

    echo $tmp的执行过程为:

    1. 替换变量:echo a    b    d

    2. 执行命令:echo a    b    d

    3. 按IFS划分echo命令之后的参数a, b, d

    所以打印出来就是a b d,多个空格只显示了一个。

    观察一下代码也可知

    $ tmp="a    b    d"
    $ echo $tmp
    a b d
    $ echo a    b    c
    a b c
    $ echo "$tmp"
    a    b    d
    $ echo "a    b    c"
    a    b    c





https://wap.sciencenet.cn/blog-858128-1274248.html

上一篇:matplotlib画直方图实例
下一篇:GMAIT基线解算脚本
收藏 IP: 183.95.251.*| 热度|

0

该博文允许注册用户评论 请点击登录 评论 (0 个评论)

数据加载中...

Archiver|手机版|科学网 ( 京ICP备07017567号-12 )

GMT+8, 2024-12-21 22:00

Powered by ScienceNet.cn

Copyright © 2007- 中国科学报社

返回顶部