Shell编程规范与变量

Shell是一个命令解释器,它在操作系统的最外层,负责直接与用户进行对话,把用户的输入解释给操作系统,并处理各种各样的操作系统的输出结果,输出到屏幕反馈个用户,这种对话方式可是交互也可是非交互的,我们所输入的命令计算机是不是别的,这是就需要一种程序来帮助我们进行翻译,编号才能计算机能识别的二进制程序,同时又把计算机生成的结果返回给我们。

 

linux系统中的shell是一个特殊的应用程序,它介于 操作系统和用户的之间,充当一个”命令解释器“的角色,负责输入的操作指令,并进行解释,将需要执行的操作传递给内核执行,并输出执行结果。

常见的shell解器有很多中,使用不同的shell,其内部指令、命令性提示符等方面会存在一些区别,通过/etc/shells 文件可以了解当前系统所支持的shell脚本种类。

.bash_profile  .bashrc 用户的环境变量 
shell是linux默认解释器  
shell脚本 

shell脚本概述
shell的作用  shell编程规范  重定向与管道

shell脚本变量
自定义变量  特殊变量  

shell脚本的概念 
将要执行的命令按顺序保存到一个文本文件  给改文件可执行权限  可结合各种shell控制语句以完成更复杂的操作 

 

free -m  available 约等于 buff/cache加free 
缓冲区不会拖累主进程 缓存先下载本地 下次访问时直接在缓存区读就可以了 缓存用于读  缓冲用于写 缓冲是高性能到低性能的数据传输时可以由性能更佳的一方先将数据写到缓存里面等待性能低的一方  过来读取的时候直接在缓存里面读取就可以了 提高高性能方的效率 节省高性能方的资源消耗  缓冲的数据并没有被读取 不安全 缓存区复用时资源减少,性能提高 

脚本执行的时候 sh -x   这个-x表示调试 只是把每一条执行的结果打出来 
source 表示的是加载/刷新环境  会把环境中的命令指令执行一次 
只有以纯路径方式执行的脚本才需要执行权限  

标准输入0  键盘敲命令  标准输出1  能输出的正确结果显示在显示器上给用户看   错误标准输出2  未找到命令也会在显示器上显示出来 
文件编号012 文件描述符  相当于指向一个文件位置用的

 

简单理解
管道    连接两条指令/命令  将前一个命令的结果输出给第二个命令来二次使用  

#!/bin/bash  (默认解释器) 脚本最上面的环境 
以#为开头的语句表示注释  被注释的语句在脚本运行时不会被执行
重定向输出   结果路径的改写 
uname -p 输出处理器类型
使用重定向输入时 后面应该是一个可读的

<<EOF  结束或者分界符   EOF 定义结尾的部分 
 cat > 1.txt <<EOF 
>111
>222
>EOF
然后cat 1.txt
会显示
111
222
首先>表示输出到1.txt文件里面的去写内容  如果没有1.txt这个文件就会创建一个   <<表示分界符  EOF表示结束的词  输入这个EOF或者0就会结束  正常情况下可以用tcl+z 结束  但是脚本里面不可以  所以追加脚本内容的时候  可以用<<加一个结束词  更方便 

2> 错误重定向 把错误的提示信息注入到指定文件  不会显示出来 2>>表示追加注入 

/dev/null   黑洞   

stdin 标准输入
stdout 标准输出
stderr 标准错误输出

重定向是指 路径或者文件对象的改变 

&表示混合 
2>&1  表示把错误的输出结果注入到一个文件里  所以不会直接显示出来 但是可以查看文件看到报错信息  前面要指定输出的文件文件位置  也可以反着来  把正确的输出到错误里  (要指定文件)

 管道符左边是管道符右边的父进程   pipe管道 
左边输出的位置是管道的入口   管道会把输出的结果给子进程的输入
子进程会把左边的结果作为参数来处理 

 

 

grep过滤  匹配
awk 打印 -F: 表示指定分割符 先写一个‘   ’    {print$1,$7}  打印第一列和第七列  

date +‘%F %T'    时间

环境变量
普通用户的家目录是.bashrc里面定义的 
UTF-8  中文

zs=l6
echo $zs   (输出的时候取这个变量名的变量值的时候前面要加$) 
l6

 

只读变量

一个简单的脚本  
1.sh 脚本名字 
#!/bin/bash/  进去编辑
ehco “$1吃了$2”
sh 1.sh $1 $2          sh不需要给执行权限执行  参数之间只接受以空格为分割  $1 $2 $3 都是参数
会输出结果 $1 吃了 $2 

要搞一个变量文件  在很多脚本的情况下 先加载变量文件 就不需要一个一个去更改变量了 省时省力   

一个简单的加法脚本
#!/bin/bash
x=`expr $1 + $2`   $1+$2
echo "$1 + $2 = $x"     输出$1+$2=$x这个值
sh xx.sh 8888 9999   执行脚本  并定义$1和$2的值  8888 9999
8888 + 9999 = 18887   输出的结果  加法呈现出来 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值