Bash 脚本中的 Echo Tab 字符
这篇文章解释了在使用 Bash 脚本时如何回显一个或多个制表符。
Bash 脚本中的 Echo Tab 字符
echo
命令很简单:它打印传递给终端的任何内容。 通常,如果您将变量保存为:
example=' 'testing
如果您尝试使用命令 echo '['$example']'
打印出此变量,您将获得以下输出。
[ testing]
这不是我们输入或保存到变量中的内容。 在上面的示例中,我们使用了两次制表符,但我们看到的只是一个空格。
应该注意的是,这种行为在所有 shell 中并不一致。 例如,在 zsh shell 中运行相同的脚本将产生以下输出,这是我们期望得到的。
[ testing]
回到 Bash 脚本,我们有几种解决方法。
使用 -e 标志
-e
标志表示启用对反斜杠转义的解释。 如果您正在编写上面的相同示例,您将按如下方式编写。
example='\t\t'testing
echo -e '['$example']'
这给出了输出:
[ testing]
\t
部分代表制表符。 因此,因为我们要引入两个制表符,所以我们将其写为 \t\t
。
一旦传递了 -e
标志,\t
符号将被解释为制表符并根据需要显示。
如果不使用 -e
标志,如以下情况,则 \t
将被读取为文字字符串,并且不会被处理为制表符。
example='\t\t'testing
echo '['$example']'
这给出了输出:
[\t\ttesting]
需要注意的是传递flag不是POSIX; 因此,这不能移植使用,例如在未实现标志的 make 中。 因此,我们将讨论一些替代方案,包括几乎通用的 printf。
当然,这部分与我们开始时略有不同,因为我们将完全放弃回声。
使用双引号
这可以说是最简单的解决方案,除了语法之外不需要任何解释。 您将按如下方式编写命令。
example=' 'testing
echo "[$example]"
这会给出结果:
[ testing]
使用 printf 代替
这是三种解决方案中最便携的,也是最推荐的。 echo 有许多实现和版本,但 printf 基本相同。
即使在任何地方单独实现,它的实现也非常相似。 我们可以看到这一点,因为上述方法的任何变体在使用 zsh 调用时都会产生相同的输出,但在使用 bash 调用时会产生不同的输出。
使用 printf 的语法定义如下。
example=' 'x
printf '%s\n' "[$example]"
这给出了输出:
[ x]
作为一般建议,只要所需的输出是像 hello 这样的简单文本,echo
就可以正常工作,但对于任何复杂的东西,使用 echo
可能会变得棘手,因为它的行为在 shell 之间有很大的不同。 在所有这些情况下(特殊字符等),建议改用 printf
。
相关文章
在另一个 Bash 脚本中包含脚本文件
发布时间:2023/06/09 浏览次数:79 分类:操作系统
-
本文讨论了将一个 Bash 脚本文件包含到另一个脚本文件中的不同方法。在 Bash 脚本中包含文件 在 Bash 中包含或重用脚本非常简单。
在 Bash 中根据文件的第二列对数据进行排序
发布时间:2023/05/20 浏览次数:134 分类:操作系统
-
本文介绍了如何在 bash 中根据文件的第二列对数据进行排序。Bash 中的排序命令概述 使用 sort 命令对文件进行排序,该命令按特定顺序放置记录。
检查 Bash 中是否存在命令
发布时间:2023/05/20 浏览次数:84 分类:操作系统
-
我们可以在 Bash 中使用不同的内置命令来检查命令是否存在。 下面演示了这些命令的使用。使用命令 -v 命令检查 Bash 中是否存在命令 命令 -v 是所有 POSIX 系统和 Bash 中的内置函数。
在 Linux 中添加新用户的 Bash 脚本
发布时间:2023/05/20 浏览次数:64 分类:操作系统
-
这篇简短的文章是关于创建一个 Bash 脚本,该脚本可以自动为 Linux 操作系统添加用户和分配密码。 在 Linux 操作系统中,useradd 命令用于添加新用户并为他们提供密码。Bash 脚本 useradd 命令
Bash 脚本中的变量插值
发布时间:2023/05/18 浏览次数:79 分类:操作系统
-
本文是关于在 Bash 脚本中使用变量以及如何在 Bash 脚本中插入这些变量。Bash 脚本中的变量。每种编程语言都有具有特定数据类型的变量。
在 Bash 脚本中执行变量中的命令
发布时间:2023/05/18 浏览次数:110 分类:操作系统
-
本篇文章是关于将 Bash 命令存储在一个变量中,然后直接从这个变量中执行它。 首先,我们将讨论执行变量中包含的命令的多种方法,然后是几个脚本示例。