初学者的Shell脚本基础

本文介绍了Shell脚本的基础知识,包括脚本的概念、应用场景、如何查看shell位置、编写及执行脚本的方式。还详细讲解了变量的作用、类型、赋值方式、键盘输入赋值、全局变量、运算、环境变量、只读变量、位置变量和预定义变量等核心概念。
摘要由CSDN通过智能技术生成

Shell脚本基础

一、概念

1)将要执行的命令按顺序保存到一个文本文件

2)给脚本文件赋予执行权限

3)可以结合各种shell控制语句用来完成更加复杂的操作

二、应用场景

1)重复性操作

2)交互性任务

3)批量事务处理

4)服务运行状态监控

5)定时任务执行

三、shell作用——翻译官

  • shell介于系统内核与用户之间,负责解释命令行

四、查看shell所在位置

[root@localhost ~]# cat /etc/shells
/bin/sh
/bin/bash
/usr/bin/sh
/usr/bin/bash

五、写脚本

[root@localhost ~]# vim hw.sh

#!/bin/bash    ///第一行固定要输入/// 
cd /boot/
pwd
ls -lh vml*

然后我们对写好的脚本文件赋予执行权限

[root@localhost ~]# chmod +x hw.sh

然后我们运行一下脚本

./hw.sh

[root@localhost ~]# ./hw.sh
/boot
-rwxr-xr-x. 1 root root 6.4M 7月   6 08:44 vmlinuz-0-rescue-4b31639c68434d27b20b7624497ff77c
-rwxr-xr-x. 1 root root 6.4M 11月  9 2018 vmlinuz-3.10.0-957.el7.x86_64

sh hw.sh

[root@localhost ~]# sh hw.sh
/boot
-rwxr-xr-x. 1 root root 6.4M 7月   6 08:44 vmlinuz-0-rescue-4b31639c68434d27b20b7624497ff77c
-rwxr-xr-x. 1 root root 6.4M 11月  9 2018 vmlinuz-3.10.0-957.el7.x86_64

. hw.sh

[root@localhost ~]# . hw.sh
/boot
-rwxr-xr-x. 1 root root 6.4M 7月   6 08:44 vmlinuz-0-rescue-4b31639c68434d27b20b7624497ff77c
-rwxr-xr-x. 1 root root 6.4M 11月  9 2018 vmlinuz-3.10.0-957.el7.x86_64
[root@localhost boot]#     ///这边注意,使用【.】运行,会切换bash环境

source hw.sh

[root@localhost ~]# source hw.sh
/boot
-rwxr-xr-x. 1 root root 6.4M 7月   6 08:44 vmlinuz-0-rescue-4b31639c68434d27b20b7624497ff77c
-rwxr-xr-x. 1 root root 6.4M 11月  9 2018 vmlinuz-3.10.0-957.el7.x86_64
[root@localhost boot]#       ///这边注意,使用【.】运行,会切换bash环境

我们现在给脚本添加一些文字

[root@localhost ~]# vim hw.sh

#!/bin/bash
# 添加文字显示
cd /boot
echo "当前的目录位于"
pwd
echo "其中以vml开头的文件包括:"
ls -lh vml*

执行一下

[root@localhost ~]# ./hw.sh
当前的目录位于
/boot
其中以vml开头的文件包括:
-rwxr-xr-x. 1 root root 6.4M 7月   6 08:44 vmlinuz-0-rescue-4b31639c68434d27b20b7624497ff77c
-rwxr-xr-x. 1 root root 6.4M 11月  9 2018 vmlinuz-3.10.0-957.el7.x86_64

六、管道符号【|】的使用

[root@localhost /]# grep "bash$" /etc/passwd | awk -F: '{print $1,$7}'
root /bin/bash

七、变量的作用

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

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

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

八、变量的类型

1)自定义变量:由用户自己定义,修改和使用

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

九、定义一个新变量

变量名=变量值
a = 1   ///【=】是赋予的意思 【==】是等于的意思///

十、赋值时使用引号

1)双引号:允许通过$符号引用其他变量值

2)单引号:禁止引用其他变量值,$视为普通字符

3)反撇号:命令替换,提取命令执行后的输出结果

十一、从键盘输入的内容为变量赋值

read【-p "提示信息"】 变量名
编写脚本
[root@localhost /]# a=1
[root@localhost /]# echo $a
1

[root@localhost /]# c="test $a"   ///双引号///
[root@localhost /]# echo $c
test 1

[root@localhost /]# c='text $b'   ///单引号///
[root@localhost /]# echo $c
text $b

[root@localhost /]# d=`ps aux | wc -l`  ///反撇号///
[root@localhost /]# echo $d
139

[root@localhost /]# d=$(ps aux | wc -l) ///和反撇号一样的作用///
[root@localhost /]# echo $d
140

[root@localhost /]# read -p "请输入一个整数:" nub
请输入一个整数:111
[root@localhost /]# echo $nub
111

十二、设置全局变量

格式1:export 变量名
格式2:export 变量名=变量值
[root@localhost /]# export aaa=23
[root@localhost /]# echo $aaa
23

[root@localhost /]# bash   ///切换环境///
[root@localhost /]# echo $aaa
23

十三、运算

常用运算符号

  • 加:+
  • 减:-
  • 乘:*
  • 除:/
  • 取余:%
[root@localhost /]# expr 2 + 3
5
[root@localhost /]# a=1
[root@localhost /]# b=2
[root@localhost /]# expr $a + $b
3
[root@localhost /]# c=3
[root@localhost /]# expr $b \* $c
6
[root@localhost /]# expr $b / $c
0
[root@localhost /]# expr $b - $c
-1

十四、环境变量

  • 环境变量是由系统提前创建,用来设置用户的工作环境
  • 常见的环境变量有:PWD、PATH、USER、SHELL、HOME
[root@localhost /]# echo $PWD
/
[root@localhost /]# echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin
[root@localhost /]# 

十五、只读变量

只读变量用于变量值不允许被修改的情况

[root@localhost /]# name=hewei
[root@localhost /]# readonly name
[root@localhost /]# echo $name
hewei
[root@localhost /]# name=he
bash: name: 只读变量
[root@localhost /]# unset name
bash: unset: name: 无法反设定: 只读 variable

十六、位置变量

位置变量表示为$n,n为1~9之间的数字

[root@localhost /]# vim hw.sh

#!/bin/bash
#read -p "请输入第一个整数:" a
#read -p "请输入第二个整数:" b
echo $1
echo $2
sum=$(expr $1 + $2)
echo "和为:$sum"

十七、预定义变量

$#:命令行中位置变量的个数
$*:所有位置变量的内容
$?:上一条命令执行后返回的状态,当返回状态值为0时,表示执行正常,非0值表示执行异常或出错
$0::当前执行的进程/程序名

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值