shell编程(二十)shell各种符号汇总

一  shell各种符号

说明: 本文主要讲解'各种符号'的应用场景,尽可能'穷举'

备注: 符号在'不同的场景',含义可能'不一样',主要讲解'shell'中,涉及少量的'regex'

(1){}花括号

如何在bash中使用{}范围表达式

①  通配符扩展

备注: 默认是以'逗号'分割

补充:'..'是范围运算符号

"备份"

cp /etc/passwd{,.bak}

②  语句块的构造

说明: 作为一个'整体',不管'报错与否'都会'继续执行' -->除非'exit退出'

特点: 多个命令'写在一块'

备注: 多个命令分行写'等价'命令之间用';'连接

③  参数扩展

说明: 与'变量'相关

说明: 这里'仅仅'讲了一个'变量初始化'

④  find中的使用

功能: 在'/logs目录'中查找'更改时间'在'5日以前'的'文件'并'交互'确定是否'删除'它们

find /logs -type f -mtime +5  -exec  -ok  rm {} \;

1)'{}'理解为'占位符',表示find'找到的文件',传递给'rm命令'处理

2)碰巧";"是shell的'命令分隔符','\;'表示不要让shell进行'特殊'处理,只能用'\'来转义,用来'结束命令'

(2) []中括号

①  通配符扩展

特点: 匹配'字符集'中的'一个字符' -->'或'

②  条件判断

实质: test命令的'简写',也是通过'$?'进行'逻辑判断'的

(3).点号

①  命令

等价: 'source' --> '加载文件'并在'当前shell'下执行

②  正则

特点: 匹配除'换行符\n'之外的任何其它'单个字符',若要匹配'文本句点字符',必须在该字符前面加上转义符 --> '\.'

(4)-

①  通配符 连子符

②  切换

cd -   -->'返回之前的目录-->OLDPWD'

su - user  -->'切换到指定用户',不指定默认是'root'

③  管道命令

减号"-"就是代表标准'输入(stdin)'/标准'输出(stout)',视命令而定

1)作为标准输出使用

xargs  --> 打包

+++++++++++++++'通常网站首页是一个bash可执行文件'+++++++++++++++

1)wget

  常见'场景': wget -qO- get.docker.com | bash

  -q的含义是:'--quiet','安静模式',无信息输出 -->'多余的信息'

  -O的含义是把后面网址下载后,改成一个'指定的名称',如果后面'没有跟着'一个名字,而是"-",则表示将下载后的内容输出到'标准输出'

备注: 标准输出是'屏幕'

-qO-的含义:把下载的内容输出到标准输出,但'并不在'屏幕显示,目的当然是直接'传递给bash进行解析'执行了

2)curl

  常见场景: curl -sSL  https://get.daocloud.io/docker | bash

  -L,'--location':如果服务器报告请求的页面'已移动'到其他位置(用location:header和3xx 响应代码),此选项将使curl在新位置上'重新执行请求'-->'解决重定向' -->'eg:http-->https'

  -S,'--show-error':当与-s,--silent一起使用时,它会使curl在'失败时显示错误'消息

  -s,'--silent':'安静模式','不'显示'进度表'或'错误信息',使curl静音,它仍然会输出您请求的数据,甚至可能输出到终端stdout,除非您对它进行重定向

  -f,'--fail': 连接失败时'不显示http错误'

2)作为标准输入输出的使用

++++++++++++++'tar'的使用++++++++++++++

场景: 那么我们可以发现'第一条语句的输出'(log.tar) 就是'第二条语句的输入',这种情况下我们可以用 "-" 来'取代'这个输出输入

tar -cvf - /var/log | tar -xvf -

1)前面的'-'是 tar -cf /var/log的输出'传送的地方'

2)后面的'-'则是使用前一个命令的'stdout'

效果: '不需要'使用'文件'了

  

(5)() 圆括号

①  命令替换

效果: 等价于`cmd`

特性: shell'扫描'一遍命令行,发现了'$(cmd)'结构,便将$(cmd)中的'cmd执行'一次,得到其'标准输出'

备注: 有些'shell'和'unix系统'不支持-->如'tcsh'

②  数组初始化

array=(a b c d)

③  命令组

特点: 括号中的命令将会'新开一个子shell顺序执行',所以括号中的变量'不能够'被脚本'余下'的部分使用

细节: 括号中多个命令之间用';分号隔开',最后一个命令'可以没有'分号,各命令和括号之间'不必有'空格

常用: umask'临时'修改文件的'权限'

(6)&

重定向结合

后台运行

把该命令以'后台方式'执行

注意: 如果命令'有输出',默认在'前台'-->'屏幕'

alias ls

③  逻辑与

猜想'&&'真正完成了'逻辑与'的功能

(7)\ 反斜杠

1)转义

反斜杠的作用是将'特殊符号字符'的特殊含义'屏蔽掉',使其还是'原字符'

2)续行

(8)(())

备注: 除了可以做'逻辑判断',后者可以还可以做'数值计算'

(9):冒号

1)  空'命令'

2)  参数'扩展'

3)  重定向

4)  当作'注释'

 ①  的用法

 ②  空命令

1.  空命令就是'什么也不做',所以'返回码'永远都是0. -->利用此可以做'长轮询'、'死循环'

2.  虽说是空命令,但'仍是命令',就具备一般命令'应有'的特征,可以像'一般命令'一样使用

1)循环

2)占位符 

应用场景:

1) 比如在编写脚本的过程中,某些语法结构需要'多个部分'组成,但'开始阶段并没有想好'或完成相应的代码

2) 这时就可以利用:来做'占位符',先把整体的框架'勾勒'出来,'起占位符(TODO)'作用,否则执行时就会'报错'

3)变量初始化

1)  格式--> ": ${VAR:=DEFAULT}"

2)  当变量VAR'没有声明'或者'为NULL'时,将VAR设置为'默认值'DEFAULT

备注:如果'不在'前面加上:命令,那么就会把'${VAR:=DEFAULT}本身'当做'一个命令'来执行,"报错"是肯定的

4)注释

使用"冒号:"还可以"用作注释行"的开始,但是如果有'语法错误',仍将'报错',这一点与使用#号不同

补充:单行注释、多行注释

说明:了解即可,'不建议'使用

 5)清空文件

(10)常用shell符号汇总

'{}'、'`'、'..'、'.'、'\'、'&'、'-'、';'、'|'、'!'、'$'、'*'、':'、'[]'、'[[]]'
  • 2
    点赞
  • 30
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值