返回顶部
首页 > 资讯 > 精选 >怎么理解Bash中的尖括号
  • 887
分享到

怎么理解Bash中的尖括号

2023-06-16 09:06:24 887人浏览 泡泡鱼
摘要

怎么理解Bash中的尖括号,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。为初学者介绍尖括号。Bash 内置了很多诸如 ls、cd、mv 这样的重要的命令,也有很

怎么理解Bash中的尖括号,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。

为初学者介绍尖括号。

Bash 内置了很多诸如 lscdmv 这样的重要的命令,也有很多诸如 grepawksed 这些有用的工具。但除此之外,其实 Bash 中还有很多可以起到胶水作用的标点符号,例如点号(.)、逗号(,)、括号(<>)、引号(")之类。下面我们就来看一下可以用来进行数据转换和转移的尖括号(<>)。

转移数据

如果你对其它编程语言有所了解,你会知道尖括号 <> 一般是作为逻辑运算符,用来比较两个值之间的大小关系。如果你还编写 html,尖括号作为各种标签的一部分,就更不会让你感到陌生了。

shell 脚本语言中,尖括号可以将数据从一个地方转移到另一个地方。例如可以这样把数据存放到一个文件当中:

ls > dir_content.txt

在上面的例子中,> 符号让 shell 将 ls 命令的输出结果写入到 dir_content.txt 里,而不是直接显示在命令行中。需要注意的是,如果 dir_content.txt 这个文件不存在,Bash 会为你创建;但是如果 dir_content.txt 是一个已有的非空文件,它的内容就会被覆盖掉。所以执行类似的操作之前务必谨慎。

你也可以不使用 > 而使用 >>,这样就可以把新的数据追加到文件的末端而不会覆盖掉文件中已有的数据了。例如:

ls $HOME > dir_content.txt; wc -l dir_content.txt >> dir_content.txt

在这串命令里,首先将家目录的内容写入到 dir_content.txt 文件中,然后使用 wc -l 计算出 dir_content.txt 文件的行数(也就是家目录中的文件数)并追加到 dir_content.txt 的末尾。

在我的机器上执行上述命令之后,dir_content.txt 的内容会是以下这样:

ApplicationsbincloudDesktopDocumentsDownloadsGamesISOsliblogsMusicOpenSCADPicturesPublicTemplatestest_dirVideos17 dir_content.txt

你可以将 >>> 作为箭头来理解。当然,这个箭头的指向也可以反过来。例如,Coen brothers (LCTT 译注:科恩兄弟,一个美国电影导演组合)的一些演员以及他们出演电影的次数保存在 CBActors 文件中,就像这样:

John Goodman 5John Turturro 3George Clooney 2Frances McDORMand 6Steve Buscemi 5Jon Polito 4Tony Shalhoub 3James Gandolfini 1

你可以执行这样的命令:

sort < CBActorsFrances McDormand 6 # 你会得到这样的输出George Clooney 2James Gandolfini 1John Goodman 5John Turturro 3Jon Polito 4Steve Buscemi 5Tony Shalhoub 3

就可以使用 sort 命令将这个列表按照字母顺序输出。但是,sort 命令本来就可以接受传入一个文件,因此在这里使用 < 会略显多余,直接执行 sort CBActors 就可以得到期望的结果。

如果你想知道 Coens 最喜欢的演员是谁,你可以这样操作。首先:

while read name surname films; do echo $films $name $surname > filmsfirst.txt; done < CBActors

上面这串命令写在多行中可能会比较易读:

while read name surname films;\ do echo $films $name $surname >> filmsfirst;\ done < CBActors

下面来分析一下这些命令做了什么:

  • while &hellip;; do &hellip; done 是一个循环结构。当 while 后面的条件成立时,dodone 之间的部分会一直重复执行;

  • read 语句会按行读入内容。read 会从标准输入中持续读入,直到没有内容可读入;

  • CBActors 文件的内容会通过 < 从标准输入中读入,因此 while 循环会将 CBActors 文件逐行完整读入;

  • read 命令可以按照空格将每一行内容划分为三个字段,然后分别将这三个字段赋值给 namesurnamefilms 三个变量,这样就可以很方便地通过 echo $films $name $surname >> filmsfirst;\ 来重新排列几个字段的放置顺序并存放到 filmfirst 文件里面了。

执行完以后,查看 filmsfirst 文件,内容会是这样的:

5 John Goodman3 John Turturro2 George Clooney6 Frances McDormand5 Steve Buscemi4 Jon Polito3 Tony Shalhoub1 James Gandolfini

这时候再使用 sort 命令:

sort -r filmsfirst

就可以看到 Coens 最喜欢的演员是 Frances McDormand 了。(-r 参数表示降序排列,因此 McDormand 会排在最前面)

看完上述内容是否对您有帮助呢?如果还想对相关知识有进一步的了解或阅读更多相关文章,请关注编程网精选频道,感谢您对编程网的支持。

--结束END--

本文标题: 怎么理解Bash中的尖括号

本文链接: https://lsjlt.com/news/283057.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • 怎么理解Bash中的尖括号
    怎么理解Bash中的尖括号,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。为初学者介绍尖括号。Bash 内置了很多诸如 ls、cd、mv 这样的重要的命令,也有很...
    99+
    2023-06-16
  • Bash中的尖括号怎么用
    这篇文章主要介绍Bash中的尖括号怎么用,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!通过使用 <,可以实现“欺骗”的效果,让其它命令认为某个命令的输出是一个文件。例如,在进行备份文件的时候不确定备份...
    99+
    2023-06-16
  • 深入理解Bash中的尖括号(适合初学者)
    前言 Bash 内置了很多诸如 ls、cd、mv 这样的重要的命令,也有很多诸如 grep、awk、sed 这些有用的工具。但除此之外,其实 Bash 中还有很多可以起到胶水作用的标点符号,例如点号(.)、逗号(,)、括...
    99+
    2022-06-04
    bash尖括号 尖括号的使用
  • Bash中尖括号的更多使用方法
    前言 在这篇文章,我们继续来深入探讨尖括号的更多其它用法。 在上一篇文章当中,我们介绍了尖括号(<>)以及它们的一些用法。在这篇文章,我们继续来深入探讨尖括号的更多其它用法。 通过使用 <,可以实现“欺...
    99+
    2022-06-04
    bash 尖括号 尖括号的使用
  • 如何分析Bash中的 {花括号}
    如何分析Bash中的 {花括号},很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。在这里,我们先来看看花括号 {}。构造序列花括号在之前的《点的含义》这篇文章中已经...
    99+
    2023-06-16
  • Bash脚本中括号和反引号的使用
    目录示例讨论总结在 Bash 脚本中,我们经常需要引用变量或者命令的执行结果来作为文件的名字或者日志的输出,在脚本或者 Shell 中我们可以使用反引号 或者括号 () 来获取到变量的内容 示例 示例 1 获取日期的输...
    99+
    2022-06-04
    Bash 括号和反引号 Bash 括号 Bash 反引号
  • shell 中小括号、中括号及大括号的区别解析
    目录一、小括号,圆括号()1、单小括号 ()2、双小括号 (( ))二、中括号,方括号[]1、单中括号 []2、双中括号[[ ]]三、大括号、花括号 {}1、常规用法2、几种特殊的替换结构一、小括号,圆括号() 1、单小...
    99+
    2022-06-04
    shell 小括号中括号大括号的区别 shell 小括号中括号大括号
  • shell中小括号、中括号及大括号的区别是什么
    这篇文章主要讲解了“shell中小括号、中括号及大括号的区别是什么”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“shell中小括号、中括号及大括号的区别是什么”吧!一、小括号,圆括号()1、...
    99+
    2023-06-25
  • 如何理解Shell中的中括号用法
    本篇文章给大家分享的是有关如何理解Shell中的中括号用法,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。导读在计算机科学中,Shell俗称壳(用来区别于核),是指"为...
    99+
    2023-06-05
  • Shell中的单中括号和双中括号的用法详解
    SHELL是Unix系统的用户与操作系统之间的一种接口。它既是UNIX系统的命令解释程序,又是一种高级的命令程序设计语言。作为命令解释程序,SHELL接收用户输入的命令,将命令翻译成一个动作序列,然后调用系统过程执行这条...
    99+
    2022-12-23
    Shell单中括号 Shell中的双中括号 Shell中括号
  • c++中括号怎么打
    c++ 中共有五种括号字符:小括号用于函数调用、条件语句和控制流结构;方括号用于数组/矢量索引和类型转换;大括号用于代码块;尖括号用于模板声明和函数重载;圆括号用于捕获 lambda 表...
    99+
    2024-04-28
    c++
  • AngularJS 中括号的作用详解
    1.括号的作用 1.1方括号 [ ] 属性名加上方括号后,右侧赋值为 表达式的值 如果属性没有方括号,右侧赋值为 字符串 <div class="red">red&l...
    99+
    2024-04-02
  • javascript中大括号怎么使用
    这篇文章主要介绍“javascript中大括号怎么使用”,在日常操作中,相信很多人在javascript中大括号怎么使用问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”java...
    99+
    2024-04-02
  • c++中大括号怎么输入
    在 c++ 中输入大括号有两种方法:1. 单反斜杠和问号:{ 和 };2. ascii 码:左括号(alt + 123),右括号(alt + 125)。对于特殊键盘布局,可以使用快捷键:...
    99+
    2024-05-01
    c++
  • Java中双大括号初始化的理解与使用
    目录对该方法的理解效率问题总结偶然机会看到一种对象初始的方式: // 新建一个列表,并赋值 "Harry","Tony","Tom" ArrayList<Str...
    99+
    2024-04-02
  • php中括号指的是什么
    本篇内容主要讲解“php中括号指的是什么”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“php中括号指的是什么”吧!php的中括号就是一种符号,一般是用来通过数组的键名来获取数组相应的值,其实使用...
    99+
    2023-07-04
  • Bash中的&符号和文件描述符如何理解
    这篇文章将为大家详细讲解有关Bash中的&符号和文件描述符如何理解,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。在我们探究大多数链式 Bash 命令中出现的所有的杂项符号(&、|、;...
    99+
    2023-06-16
  • shell的双括号怎么使用
    这篇文章主要介绍“shell的双括号怎么使用”,在日常操作中,相信很多人在shell的双括号怎么使用问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”shell的双括号怎么使用”的疑惑有所帮助!接下来,请跟着小编...
    99+
    2023-06-28
  • golang括号换行报错怎么解决
    golang是一种新兴的编程语言,在近年来愈发流行的同时也遇到了一些问题。其中之一就是在换行时golang括号的使用容易导致编译错误。这是因为golang的语法对于括号的换行有着严格的限制,所以在编写代码时必须要注意。在golang中括号的...
    99+
    2023-05-14
  • php中字符串怎么去掉括号
    本文操作环境:Windows10系统、PHP7.1版、Dell G3电脑。php中字符串怎么去掉括号str_replace() 函数替换字符串中的一些字符(区分大小写)。该函数必须遵循下列规则:如果搜索的字符串是一个数组,那么它将返回一个数...
    99+
    2015-06-23
    PHP
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作