①[[是 bash 程序语言的关键字。并不是一个命令,[[ ]] 结构比[ ]结构更加通用。在[[和]]之间所有的字符都不会发生文件名扩展或者单词分割,但是会发生参数扩展和命令替换。
成都做网站、成都网站建设、成都外贸网站建设,成都做网站公司-创新互联已向成百上千企业提供了,网站设计,网站制作,网络营销等服务!设计与技术结合,多年网站推广经验,合理的价格为您打造企业品质网站。
②支持字符串的模式匹配,使用=~操作符时甚至支持shell的正则表达式。字符串比较时可以把右边的作为一个模式,而不仅仅是一个字符串,比如[[ hello == hell? ]],结果为真。[[ ]] 中匹配字符串或通配符,不需要引号。
③使用[[ ... ]]条件判断结构,而不是[ ... ],能够防止脚本中的许多逻辑错误。比如,、||、和 操作符能够正常存在于[[ ]]条件判断结构中,但是如果出现在[ ]结构中的话,会报错。比如可以直接使用if [[ $a != 1 $a != 2 ]], 如果不适用双括号, 则为if [ $a -ne 1] [ $a != 2 ]或者if [ $a -ne 1 -a $a != 2 ]。
④bash把双中括号中的表达式看作一个单独的元素,并返回一个退出状态码。
格式
command1 command2
左边的命令(命令1)返回真(即返回0,成功被执行)后,右边的命令(命令2)才能够被执行;换句话说,“如果这个命令执行成功那么执行这个命令”。
命令之间使用 连接,实现逻辑与的功能。
只有在 左边的命令返回真(命令返回值 ? == 1),后面的命令就不会被执行。
若字符串中出现以下字符,则特别加以处理,而不会将它当成一般文字输出:
\a 发出警告声;
\b 删除前一个字符;
\c 最后不加上换行符号;
\f 换行但光标仍旧停留在原来的位置;
\n 换行且光标移至行首;
\r 光标移至行首,但不换行;
\t 插入tab;
\v 与\f相同;
\ 插入\字符;
\nnn 插入nnn(八进制)所代表的ASCII字符;
Xshell只是一个shell连接工具,不用xshell确实也可以在linux上输入命令,假设你这台装了linux的机器是物理机,放在公司的机房里,你愿意坐在机房里对着一堆服务器敲命令吗?别的不说,噪音都吵死人。其次,如果你想边看教程边敲命令,或者直接从网上复制命令粘贴到linux命令窗口去执行,如果你是在机器前面,你有什么办法可以粘贴呢?
还有,如果你想把某个命令的执行结果传输到本地,你有什么办法呢?
如果使用了xshell的话,可以直接在办公室远程连接机房的服务器直接执行命令,可以复制粘贴命令执行,可以使用xshell的log工具直接导出命令的执行结果。这些都是xshell带来的方便之处。最重要的一点是,你的windows机器没有shell工具的话就没法远程连接linux服务器啊。
不知道我说清楚了没有,希望可以帮助到你。
grep 命令是匹配关键词相应行的功能,
“ol.*oy” 这是正则关键词 意思是 ol+ .*表示任意个 任意字符+oy 的词
test.txt 是文件名
综合所述就是在test.txt文件中匹配ol...oy相应词对应的行。