0 0

bash中特殊字符打印(制表符)5

执行下面的代码
$ a=aa
$ b=bb
$ echo -e $a"\t"$b
aa    bb
$ c=`echo -e $a"\t"$b`
$ echo $c
aa bb


第一次echo的时候,可以看到aa和bb之间有很大的空白,说明制表符打印成功
为什么第二种方式echo,tab就不见了

我现在的想要做的是,把a和b变量用tab拼接起来


问题补充:上面的问题已经解决了,使用引号,像这样:echo "$c"就能把tab打印出来了
2013年9月12日 11:19

2个答案 按时间排序 按投票排序

0 0

采纳的答案

bash -x -c 'c=`echo -e a"\t"b`; echo $c'

输出:
++ echo -e 'a\tb'
+ c='a	b'
+ echo a b
a b


  • c的内容是正确的,包含了\t
  • echo $c,$c会被变量值替换,而\t会被命令行忽略,就变成了:echo a b
  • "$c",也会被替换,但是注意是在双引号内部替换,所以是“a b”


bash -x -c 'c=`echo -e a"\t"b`; echo "$c"'
++ echo -e 'a\tb'
+ c='a	b'
+ echo 'a	b'
a	b

另外一个例子:
bash -x -c 'array=("a\t1" b c);echo -e "${array[@]}"' 
+ array=("a\t1" b c)
+ echo -e 'a\t1' b c
a	1 b c

2013年9月12日 23:49
0 0

是以下的区别
echo -e $a"\t"$b
echo $a"    "$b
对c赋值的时候,c已经转为aa    bb的形式了,再echo出来就是aa bb了。
如果要保持tab打印,应该将c赋值为aa\tbb,然后echo -e转换出来就是了。

2013年9月12日 12:59

相关推荐

    linux 中grep 匹配制表符 和 换行符的命令

    在处理包含特殊字符如制表符(tab)和换行符(newline)的数据时,`grep`同样能胜任。本文将详细介绍如何使用`grep`来匹配这些特殊字符。 一、匹配换行符 在Linux中,换行符通常用`\n`表示。当你需要在文件中查找...

    Bash特殊变量讲解

    - 字段分隔符,默认情况下为空格、制表符和换行符。这个变量决定了如何分割字符串中的单词。 - **$LANG: 默认语言环境** - 默认的语言环境设置,可以被其他`LC_*`变量覆盖。 - **$LC_ALL: 当前语言环境** - 覆盖`...

    linuxbash特殊字符使用方法和截图[参照].pdf

    3. **反斜线**:`\` 作为转义字符,用于取消特殊字符的特殊含义,如 `\n` 表示换行,`\t` 表示制表符。 4. **输入与输出重定向**: - **输入重定向**:`用于将命令的输入源改为指定文件,例如 `wc 读取文件 `...

    Bash脚本编写中遇到的问题

    例如,空格、制表符和引号都可能改变字符串的解析方式。正确使用转义字符`\`和双引号可以帮助避免意外的分隔。 文件操作也是Bash脚本中常见的功能,但错误的文件路径、权限问题或不正确的重定向可能导致脚本失败。...

    Linux下如何使用grep命令查找带有tab(退格)的字符

    本文主要讨论在使用grep命令进行搜索时,如何正确处理和匹配tab(制表符)字符,这是因为在Linux环境下,tab字符在文件中经常被用作字段分隔符。 首先,要在grep命令中查找包含制表符的字符串,我们需要了解在正则...

    bash-Reference-Manual.pdf

    ANSI-C引用提供了更多控制能力,允许引用转义序列,如“\t”代表制表符,“\n”代表换行符等。 条件构造允许根据特定条件执行不同的代码路径,常见的条件构造包括if语句、case语句等。循环构造则允许重复执行一系列...

    详解Bash命令行处理

    Bash首先将输入的命令行拆分为一系列记号,这些记号是由特定的元字符分隔开的,包括空格、制表符、换行符、分号、圆括号、尖括号、竖线(|)和与符号(&)。这些记号可以是单词、关键字、I/O重定向符号或分号。 ###...

    Bash 新手指南.pdf

    - 可以使用`FS`变量来定义字段分隔符,默认为空格或制表符。 **6.4 总结** - 学习AWK的基础知识和使用技巧。 - 掌握使用AWK处理结构化数据的能力。 以上内容覆盖了《Bash新手指南》的核心知识点,通过学习这些...

    bash完全手册,bash manual

    - **Word Splitting**: 默认情况下,Shell会在空格、制表符、新行处分割单词。 - **Filename Expansion**: 用于扩展文件名模式。 - **示例**: `ls *.txt` 综上所述,Bash提供了一套强大且灵活的工具集,使得用户...

    Linux下tr命令“字符”处理的实用例子

    使用tr命令还可以将特定的不可打印字符或特殊字符替换为其他字符。例如,将制表符替换为空格: ```bash cat file | tr "\011" "\040" > new_file ``` 或者将路径变量中的冒号":"替换成换行符"\n",使得路径变量显示...

    linux脚本bash官方手册

    - **单词分割**:默认情况下,shell会根据空格、制表符和换行符对单词进行分割。 - **文件名扩展**:允许使用通配符来匹配文件名。 - **模式匹配**:使用通配符和正则表达式来匹配文件名。 - **引用去除**:允许删除...

    Bash Reference Manual

    - **单词分割**:Shell默认会将空格、制表符和换行符视为单词分隔符。 - **文件名扩展**:通过模式匹配来扩展文件名。 综上所述,Bash不仅是一个强大的命令行界面工具,还提供了丰富的脚本编程能力。从基本的命令...

    高级Bash编程

    - **转义字符**:如`\n`(换行)、`\t`(制表符)等,用于改变输出格式。 #### 四、变量与参数 ##### 4.1 变量替换 - **基本语法**:`${variable}`或`$variable`。 - **示例**: ```bash name="Alice" echo ...

    BASH Reference manual

    - **Word Splitting(单词分割)**:在未被引号保护的情况下,空格和制表符会将单词分为多个部分。 - **Filename Expansion(文件名扩展)**:如通配符`*`用于匹配多个文件名。 综上所述,BASH作为一种高度可配置和...

    Linux攻略 关于Bash命令行处理概括介绍

    - Bash首先会识别输入的命令行,并根据分割符(包括空格、换行符、制表符、分号`;`、圆括号`(`和`)`、尖括号`和`>`、管道符号`|`以及与符号`&`)将其拆分成独立的记号(token)。 2. **检查第一个记号**: - 接...

    Linux中printf命令使用实例.doc

    Linux 中 printf 命令使用实例 ...在上面的实例中,我们使用了 printf 命令来实现复杂的格式控制,包括转换符、转义字符、水平制表符等。这些功能使得 printf 命令非常强大和灵活,可以满足各种复杂的输出需求。

    BASH编程-Linux中的必备编程技术

    - **IFS**:内部字段分隔符,默认为空格、制表符和换行符。 - **MAIL**:用户邮件的存放位置。 - **PS1**、**PS2**:提示符,分别表示一级和二级提示符。 #### 特殊变量 - **$0**:当前shell脚本的名称。 - **$#**...

    计算机软件基础:05第一章UNIX_Bash.doc

    当用户键入一部分命令或文件名后,按下制表符键,Bash会自动填充完整命令或文件名。这在输入长命令或路径时非常有用。 2. **工作目录栈:** - **工作目录栈的概念**:Bash提供了一个工作目录栈,用于在多个目录间...

    bash_shell@鸟哥

    - **变量设定规则**:在Bash Shell中,变量名通常由字母或下划线组成,并且不能包含空格或其他特殊字符。 - **`unset`**: 命令用于删除已定义的变量。 #### 2.2 变数的用途? 变量在shell脚本中极其重要,它们可以...

Global site tag (gtag.js) - Google Analytics