Shell脚本

Shell

        Shell的作用

                概念

                        充当”命令解释器“

                        负责接收用户输入的操作指令并进行解释

                Shell脚本

                        将平时使用的各种Linux命令按顺序保存到一个文本文件中

                        为其添加可执行权限,即为Shell脚本

                        批量处理的自动化过程

                应用场景

                        重复性操作

                        交互性任务

                        批量事物处理

                        服务运行状态监控

                        定时任务执行

        使用Shell编写简单脚本

                权限不够:chmod +x 脚本文件

                Shell文件所在位置  :  /etc/shells

                查看当前所使用的Shell :

                        echo $SHELL

                        printf $SHELL

                编写脚本代码

                        使用vim文本编辑器

                        每行一条Linux命令,按执行顺序依次写入

                执行脚本
                        创建

                                vi kgc.sh   创建一个shell脚本

                                vi kgc.ps  创建一个爬虫脚本

                        执行

                                bash    kgc.sh

                                sh         kgc.sh           

                               调用脚本路径执行

                                        绝对路径访问

[root@bogon ~]# /root/kgc.sh
-bash: /root/kgc.sh: 权限不够
[root@bogon ~]# chmod +x kgc.sh
[root@bogon ~]# /root/kgc.sh
你好

                                        相对路径访问

[root@bogon ~]# ./kgc.sh
你好
                             其他常用访问方式
[root@bogon ~]# . kgc.sh
你好
[root@bogon ~]# source kgc.sh
你好
                        规范

                                在第一行声明解释器

#!/bin/bash
echo "你好"         

                重定向

                        交互式硬件设备

                                标准输入:从该设备接收用户输入的数据

                                标准输出:通过该设备向用户输出数据

                                标准错误:通过该设备报告执行出错信息

类型设备文件文件描述编号默认设备
标准输入/dev/stdin0键盘
标准输出/dev/stdout1显示器
标准错误输入/dev/stderr2显示器
                        重定向与管道操作
类型操作符用途
重定向输入<从指定的文件读取数据,而不是从键盘输入
重定向输出>将输出结果保存到指定的文件(覆盖原有内容)
>>将输出结果追加到指定的文件尾部
标准错误输出2>将错误信息保存到指定文件(覆盖原有内容)
2>>将错误信息追加到指定文件中
混合输出&>将标准输出、标准错误的内容保存到同一文件中
                         管道操作符号“|”

                                将左侧的命令输出结果,作为右侧命令的处理对象

变量

        变量的作用

                用来存放系统和用户需要使用的特定参数(值)

                        变量名:使用固定的名称,由系统预设或用户定义

                        变量值:能够根据用户设置,系统环境的变化而变化

                定义一个新的变量

                        变量名以字母或下划线开头,区分大小写,建议全大写

                        声明 name=student

                查看变量的值

                        调用 echo ${name}

                        {}  :界定定位符(明确变量的边界)

                        单引号与双引号的作用: 界定特殊字符,单引号会直接输出引号的内容,双引号则是大多数字符都被视为普通字符,但有几个字符具有特殊意义,双引号内的变量和命令会被shell解释或执行,并替换为它们的结果

        变量的类型

                自定义变量:由用户自己定义,修改和使用。不能有空格,除非用引号包含

                特殊变量:环境变量,只读变量,位置变量,预定义变量

                        环境变量

                                由系统提前创建,用来设置用户的工作环境

                                配置文件:/etc/profile、~/.bash_profile

                                常见的环境变量

                                        SHELL  USER  LANG PATH

                                        PATH :编写的脚本想要当命令使用,可以放到该命令下的任意路径下

                        只读变量

                                把变量设置为只读,一经设置,不能删除,不能修改,只能调用

                                        declare命令也可以用来声明只读变量,使用-r

               readonly 变量名

               变量在脚本编程中特别有用,因为它们可以防止变量被意外地修改,从而增加脚本的健壮性和可维护性

                        预定义变量 
                                有一些预定义的变量(也称为特殊变量或内置变量),这些变量提供了关于脚本执行环境的信息,例如脚本的参数、脚本的退出状态、当前进程的PID等。这些变量通常都以大写字母表示,以区别于用户定义的变量              
[root@bogon ~]# cat kgc.sh
#!/bin/bash
echo "你好"

echo "'$'0是:$0"
echo "第一个参数是:$1"
echo "第一个参数是:$2"
[root@bogon ~]# ./kgc.sh aa bb
你好
'$'0是:./kgc.sh
第一个参数是:aa
第一个参数是:bb
[root@bogon ~]# 
                                        常见的预定义变量                                

                                                所有参数  $*

                                                所有参数的个数  $# 

                                                $0 :当前执行的进程/程序名

                                                $?: 上一条命令执行后返回的状态,当返回状态值为0时,表示执行正常,非0值表示执行异常或出错

                把命令执行结果赋给变量名

                        ``反撇号:

[root@bogon ~]# cat test.txt
wangwu
lisi
zhanglong
zhaohu
[root@bogon ~]# name=`cat test.txt`
[root@bogon ~]# echo $name
wangwu lisi zhanglong zhaohu

                        ()小括号也具有相同作用

[root@bogon ~]# name=$(cat test.txt)
[root@bogon ~]# echo $name
wangwu lisi zhanglong zhaohu
[root@bogon ~]# 

                计算

                        expr  可以用于计算,值得注意的是命令之间要有空格

                        [1 + 1]    :同样可以计算,但是不输出结果,通常配合echo 打印

                                echo $[1 + 1]

                        ((1 - 1)) :同样可以计算

  • 21
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值