linux 系统上 shell脚本 的写法(循环的写法)

linux 系统上 shell脚本 的 使用介绍(循环的写法)

shell脚本介绍

shell脚本:是linux上的一种脚本语言,
有三种格式:

#!/bin/sh 
#!/bin/bash
#!/bin/ksh(使用比较少)

格式必须出现在shell脚本的第一行。
shell脚本中包含流程控制语句和linux命令,变量等内容
shell脚本文件的名字一般以.sh结尾,也可以没有后缀

写一个简单的shell脚本

[root@ ~]# vim first.sh

#!/bin/bash
echo Hello World

shell脚本的运行:
1.给脚本文件赋可执行权限
chmod 755 first.sh
2.运行脚本
(1)使用sh命令运行脚本
sh first.sh #可以使用脚本的绝对路径 ,如果脚本没有格式字符串,使用sh可以运行
(2) 进入脚本文件所在的目录,使用./运行脚本
./first.sh #只能在脚本文件目录下运行脚本,如果脚本没有格式字符串,那么不一定能正常运行

shell脚本的参数:

$0:表示取脚本的名称
$n:n表示一个自然数(1到9),表示取脚本的第n个参数
$#:表示取脚本的参数个数
$*:表示取脚本的所有参数
$?:取上一个命令的运行结果(是一个数字,一般0和1,也可以是其他数据)

shell脚本的传参

shell脚本的传参:在运行脚本时,在脚本后面加上空格,后面就是脚本的参数,参数和参数之间用空格隔开

[root@ ~]# vim param.sh

#!/bin/bash
echo '打印脚本的名称$0:'$0
echo '打印脚本的第1个参数$1:'$1
echo '打印脚本的第2个参数$2:'$2
echo '打印脚本的第3个参数$3:'$3
echo '打印脚本的参数个数$#:'$#
echo '打印脚本的所有参数$*:'$*

[root@bow ~]# chmod 755 param.sh
[root@bow ~]# sh param.sh a b c d e f
打印脚本的名称$0:param.sh
打印脚本的第1个参数$1:a
打印脚本的第2个参数$2:b
打印脚本的第3个参数 3 : c 打 印 脚 本 的 参 数 个 数 3:c 打印脚本的参数个数 3:c#:6
打印脚本的所有参数$:a b c d e f
[root@bow ~]# ./param.sh 1 2 3 4 5 6
打印脚本的名称$0:./param.sh
打印脚本的第1个参数$1:1
打印脚本的第2个参数$2:2
打印脚本的第3个参数 3 : 3 打 印 脚 本 的 参 数 个 数 3:3 打印脚本的参数个数 3:3#:6
打印脚本的所有参数$
:1 2 3 4 5 6
在这里插入图片描述

$符号:取变量的值
${变量名}或者$变量名

变量的定义:
变量名=值

shell脚本中默认的数据类型是字符串类型:

1.字符串的表示:

   (1)不加任何符号
   (2)加单引号,单引号字符串中$等符号,表示一个普通的符号
   (3)加双引号,双引号中的$符号可以取到变量的值

[root@bow ~]# vim str.sh

#!/bin/bash
#声名一个变量
a=hello
#使用单引号
echo '打印变量a的值:$a'
#使用引号
echo "打印变量a的值:$a"
#使用$变量取值
echo 打印变量a的值:$asmith
#使用${}取值的区别
echo 打印变量a的值:${a}smith

[root@ ~]# sh str.sh
打印变量a的值:$a
打印变量a的值:hello
打印变量a的值:
打印变量a的值:hellosmith

2.声名数字类型变量的方法:

[root@bow ~]# a=1+2
[root@bow ~]# echo $a
1+2
(1)使用let得到一个数学表达式的结果
[root@bow ~]# let b=1+2
[root@bow ~]# echo $b
3
(2)使用declare -i来声名一个数字类型的变量
[root@bow ~]# declare -i c
[root@bow ~]# c=1+2
[root@bow ~]# echo c 3 ( 3 ) 使 用 c 3 (3)使用 c3(3)使((数学表达式))来获取一个数学表达式的运算结果
[root@bow ~]# d=$((1+2*2))
[root@bow ~]# echo $d
5

3.日期在shell中只能通过字符串来表示

date命令,获取当前系统的日期和时间
%Y:表示年
%m:表示月
%d:表示天
%H:表示小时
%M:表示分钟
%S:表示秒
%A:表示星期

[root@bow ~]# date '+%Y-%m-%d %H:%M:%S'
[root@bow ~]# date '+%Y-%m-%d %H:%M:%S %A'
2020-03-30 10:47:55 星期一
修改日期:
[root@bow ~]# date -s 2020-03-31
2020年 03月 31日 星期二 00:00:00 CST

[root@bow ~]# date -s 14:34:31
2020年 03月 31日 星期二 14:34:31 CST

[root@bow ~]# date -s 2020-03-30
2020年 03月 30日 星期一 00:00:00 CST
[root@bow ~]# date -s 10:52:30
2020年 03月 30日 星期一 10:52:30 CST
``:取一个命令的运行结果(注意它不是单引)
[root@bow ~]# d=`date '+%Y%m%d %H:%M:%S'`
[root@bow ~]# echo $d
20200330 10:55:09

流程控制语句:

(1)if语句

if 条件表达式; then
脚本内容(linux命令)
fi
if 条件表达式
then
脚本内容
fi

条件表达式:
 符号:[
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

yang_z_1

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值