Shell 编程

Shell是什么?
Shell介于人和计算机之间。

计算机语言   二进制
 
Shells 的类型。

/bin/sh 以淘汰。
/bin/bash  现在常用的Linux默认的shell    管理员
/usr/bin/bash  现在常用的也是Linux默认的shell    普通用户
/bin/tcsh 基于tcsh  提供可更多的扩展功能。
/bin/csh   C类语言shell

/bin/bash
我们默认使用的shell就是bash

查看用户使用的shell 
/etc/passwd  查看用户信息。包括用户使用的shell


shell脚本:
脚本语言 :扩建语言,动态语言,也是编程语言的一种。主要用来控制软件应用程序。
                 都是以文本形式保存,只要在被调用的时候,文本代码才会被解释或者编译,执行。

创建脚本格式:
               .sh  约定成俗的习惯都以.sh结尾,表示shell脚本。

shell脚本的作用。
         1,自动化运维(配合定时任务执行)
         2,批量化重复操作可以通过脚本执行,减少人工重复输入。
         3,减轻了管理员的工作量。
         4,提高了处理文件的速度。
         5,避免配制出错。


shell 组成结构:

1,声明解释器: 
 #!/bin/bash     声明shell编译器,就是使用bash,可以不加。

2,#表示注释,注释掉的代码不会被执行,而且是按行进行注释
 # 可执行语句:脚本当中的执行顺序是依次从上到下。依次执行。

3,脚本当中的语句,Linux的可执行命令都3、脚本当中的语句,linux的可执行命令都可以做为shell脚本的语句
4、脚本当中的语句按照从上到下,依次按行执行。


shell的执行方式:

1,赋权执行 执行权限

2,不赋权执行 (脚本调试)

    sh           脚本名
    source    脚本
    source 命令 :  点命令   .
  
         对于刚刚修改的文件进行初始化操作。(文件内容都是shell语句,都是可执行的命令)
     执行source可以不需要重启,使更改的内容直接生效。


       sh :只在当前环境运行,并不涉及子shell环境切换。
       source :新键一个shell,继续执行。而且所有的执行结构都会保存在这个shell里面。

赋权执行:

      chmod  777  赋权   所有权限

       ./first.sh      在当前目录可以直接执行
       /opt/firs.sh   绝对路径来写


    需要执行的脚本不能放在用户的家目录。
    最好放在opt目录中
    结和定时任务执行,必须绝对路径。


标准输入:  键盘,文件编号时0 我们执行的命令结果。ls cd /opt

标准输出:显示器,显示输结果。

标准错误输出: 显示器,显示错误的输入信息。LS


重定向:

echo  123 > 123
重定向输出:将标准输出的内容保存到指定的文件。覆盖文件当中的原有内容  >  
                    >> 也是重定向输出的内容保存到指定目录,不会改变源文件当中的了内容。


重定向是错误输出: 2> 2>>            不常用。


混合输出:    &>      会覆盖源有内容。

重定向输入:  < 

<  >  >>  &>


怎么在shell脚本中定义变量。以及shell脚本的变量类型shell的运算符。

变量:   面向对象,对象的名称 对象的属性。

变量名 :
 
属 性: 变量的值,对象的描述信息。


变量的属性:  值的类型。

 int  :整数类型。
 string :字符串类型。
 布尔 : true false 
 浮点: 1.2  3.4  5.6 

变量名 = 属性值   a=123

打印变量值    echo  $a


变量的命令规范(自定义变量)
  1,不要使用Linux的系统命令作为变量名。
  2,不要使用中文。
  3,不要使用特殊符号作为变量名称的开头。可以使用下划线 _ 作为变量的开头。
  4,默认规则 :学生 student     简写  stu       秒 sec    计算机 :  computer
  5,默认加上注释,变量名的引用保持前后一致。


自定义变量: 
在自定义变量当中 :   ""     ''   `  ` 

整数类型可以不加引号,赋值为字符串类型,最好加上引号,以避免歧义。

在给变量赋值时,单引号和双引号一样。不影响变量的值

`  ` : 命令替换,先执行反撇好当中的命令,然后再把命令行的结果赋值给变量。

打印变量是,引号的作用 这里不涉及反撇号
打印变量双引号和单引号机制不同

echo "$a"  弱引,原变量的值不变。
echo '$a'   强引用,变量值将不再打印,就是$a这个字符串。

 echo "$a"

"${a}"  :保证一定能够正确的识别变量值。

变量赋值 :

a =1   b =2 

read命令的方式获取变量:

read -p "提示信息"  + 变量名

变量的作用范围:
 默认情况下,新定义的变量只在当前的shell 环境中生效。

全局变量:

export  变量名=变量名
 需要在一整套环境当中引用唯一且不变化的变量时,才会声明全局变量。

环境变量 :

系统提前创建,用户也可以添加,设置用的工作环境。配置系统行为,控制程序运行。

特殊的全局变量。

用户级环境变量 :只对当前用户和=可见。
预定义环境变量:系统预设,所有都可以见,相当于全局变量
自定义的环境变量:特殊的全局变量,只对设置用户有效。

$USER  显示用户名称
$HOME 用户的家目录
$PWD : 表示当前所在的工作目录。
$PATH:可执行用户程序的默认路径。


位置变量: 


命令行参数
在脚本或者程序运行时,传递给他们的值,而且位置变量在脚本外部传递变量值。

$n 1~9 

$1 $ 2 $3 ......$9

${10}  $(11)


预定义变量:

编程语言或者脚本解释编辑器提供的,不能修改的。。只能根据需要自动设置或者更新。

$* 和 $@ :表示命令或者脚本需要处理的参数。

$* 和 $@  :不加引号的表现一致,都会吧参数分行处理

$*   :加上引号,会把参数当成一行处理。

$# :  显示需要处理的参数个数。

$?  :表示前一条命令或者脚本执行之后的返回状态码,只有返回0,表示执行成功,所有非0全部表示执行失败。
       也可以用在函数中,作为return的返回值。

shell脚本当中整数的运算方式:

只能做整数运算
c=$(($a+$b))

c=$[12*5]

let c=12*5

c=$(expr 12 + 5)    

c=$(expr 12 \* 5)乘法


i++:i=$(($ + 1))  每次自增1
++i   :  先加 ,再赋值

i--    :先赋值再减1

--i    :先减 在赋值。

浮点数运算:
bc 是shell自带的计算器。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值