shell脚本


前言

本文主要叙述了shell的背景知识、shell脚本的基本语法、shell脚本示例、和一些shell常用命令。


提示:此篇文章记录了本人学习shell的历程,如有错误的地方还请海涵。

一、shell的背景知识

shell就是一个用于用户和内核交互的工具。在Linux系统中设计了shell来控制内核和获取内核状态。而shell脚本就是一个文本文件,简单的说重复操作shell,可以通过编写一个shell脚本自动帮我们完成。

1.shell脚本执行器

shell脚本当然要有shell脚本执行器来执行,shell脚本执行器这里主要是bash和sh这两个。sh是bash的缩减版,因此为了功能齐全建议都是用bash来执行shell脚本。

shell脚本的执行方式有三种

先编写一个shell脚本命名为 hello.sh

#!/bin/bash
echo > "hello word!"
#第一行是执行器路径
#第二行是向终端输出hello word

1、当成可执行文件直接执行

chmod +x hello.sh #赋予可执行权限
./hello.sh #执行程序

2、作为解释器参数

/bin/bash hello.sh

3、使用内置的shell命令source

source hello.sh

注:source命令在当前目录执行程序,和前两者区别是不会产生新的进程。

二、shell脚本的基本语法

1、变量、数组、运算符

#!/bin/bash
#变量######################################################
value_1="12" #变量赋值
echo $value_1#使用变量
echo ${value_1}#花括号用于解释器识别边界可不加
readonly value_2#只读变量
unset value_2#=删除变量
#1.局部变量:当前脚本定义的变量
#2.环境变量:shell启动的程序,都能访问的变量
#3.shell变量:由shell程序设置的特殊变量,部分环境变量部分局部变量

str='this is string'#单引号是原样输出包括变量  
str_1="this is string \n yes!" #转义输出 (换行)
str_2="hello"
str_3="word !"
echo $str_2 $str_3#拼接字符串
echo "$str" #输出变量
echo $(echo_3)#输出字符串长度 
echo $(str:2:4)#跳过第2个字符开始往后数4个输出
echo `expr index "$str_1" io`#输出3  查找字符 i 或 o 的位置(哪个字母先出现就计算哪个)

#数组######################################################
array_1=(val_1 val_2 val_3 val_4)#空格分开
array_1[0]=val_1#单独赋值
value=${array_1[n]}#获取数组元素中的值 [@]获取所有元素
echo ${array_1[1]}#输出第一个元素
length=${#array_1[@]}#获取元素个数
:<<EOF  #  EOF也可以替换为 ! "
多行注释
EOF

#运算符######################################################

#算数运算符-----------------------------------------------------
val_1=`expr 4 + 6`
echo "两数相加为 : $val_1"
value=`expr $val_1 + $val_2`  # + - / %	=	
value`expr $val_1 \* $val_2`  # 注意乘号*要写成\* 
return_1=[$val_1 == $val_2]	  # == !=(返回的是fale 或者true)
 #注意:[$a==$b] 是错误的,必须写成 [ $a == $b ] (需要加空格)
 
#关系运算符-----------------------------------------------------
val_1=10
val_2=20
if [ $val_1 -eq $val_2 ]
then
   echo "$val_1 -eq $val_2 : val_1 等于 val_2"
else
   echo "$val_1 -eq $val_2: val_1 不等于 val_2"
fi
# -eq 相等为true 
# -ne 不等为true
# -gt 左边大为true
# -lt 左边小为true
# -ge 左边大于等于为true
# -le 左边小于等于为true

#布尔运算符-------------------------------------------------------


#字符串运算符
#文件测试运算符

2、echo、printf、test

#!/bin/bash
#echo######################################################
#printf######################################################
#test######################################################

3、流程控制、函数、输入\输出重定向、文件包含

#!/bin/bash
#流程控制######################################################
#函数######################################################
#输入\输出重定向######################################################
#文件包含######################################################

三、shell脚本的示例

1.引入库

代码如下(示例):


2.读入数据

代码如下(示例):


待续…


总结

shell脚本的基础使用

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值