shell脚本

service mysqld start启动数据库

mysql -uroot -p

修改密码

alter user 'root'@'localhost' identified with mysql_native_password by 'Abc123...';

systemctl stop firewalld.service

开发的规范

1) 放在统一的目录

2) 脚本以.sh为扩展名 (不是必需的)

3) 开头指定脚本解释器。(#! /bin/sh)

4) 开头加版本版权等信息,可配置~/.vimrc文件自动添加。

5) 脚本不要用中文注释,尽量用英文注释。

6) 代码书写优秀习惯

a、成对的内容一次性写出来,防止遗漏,如[ ]、' '、" "等

b、[ ] 两端要有空格,先输入[ ],退格,输入2个空格,再退格写。

c、流程控制语句一次书写完,再添加内容。(if 条件 ; then 内容;fi)

语法结构为

if condtion

then

do something

elif condtion

then

do something

else

do something

fi

d、通过缩进让代码易读。

f、脚本中的引号都是英文状态下的引号,其他字符也是英文状态。

6 shell脚本的编写/执行/调试

echo

定义变量 A=1

取:echo $A

扔:unset A

只读:readonly A=2

变量名:字母、数字、下划线

不能以数字开头

环境变量名建议大写

bash中,变量默认为字符串类型,不能运算

变量值中有空格,用双引号把变量引起来

export 变量名--把变量提升为全局环境变量

$# 参数个数

$*所有参数 加引号相当于1个字符

$@所有参数 加引号也认为是多个字符

$?执行是否成功,成功为0

单引号和双引号:

数字夹单引号双引号或者是不加结果是一样的都是数字

字符串 单引号和双引号是一样的

取值:单引号是原文输出双引号是进行取值

文件判断-d -f-e

常用文件测试操作符

常用文件测试操作符

说明

-d文件,d的全拼为directory

文件存在且为目录则为真,即测试表达式成立

-f文件,f的全拼为file

文件存在且为普通文件则为真,即测试表达式成立

-e文件,e的全拼为exist

文件存在则为真,即测试表达式成立。注意区别于“-f”,-e不辨别是目录还是文件

-r文件,r的全拼为read

文件存在且可读则为真,即测试表达式成立

-s文件,s的全拼为size

文件存在且文件大小不为0则为真,即测试表达式成立

-w文件,w的全拼为write

文件存在且可写则为真,即测试表达式成立

-x文件,x的全拼为executable

文件存在且可执行则为真,即测试表达式成立

-L文件,L的全拼为link

文件存在且为链接文件则为真,即测试表达式成立

fl -nt f2,nt 的全拼为 newer than

文件fl比文件f2新则为真,即测试表达式成立。根据文件的修改时间来计算

fl -ot f2,ot 的全拼为 older than

文件fl比文件f2旧则为真,即测试表达式成立。根据文件的修改时间来计算

判断目录是否存在

判断文件是否存在

字符串判断-n -z

字符串测试操作符

常用字符串测试操作符

说明

-n "字符串"

若字符串的长度不为0,则为真,即测试表达式成立,n可以理解为no zero

-z "字符串"

若字符串的长度为0,则为真,即测试表达式成立,z可以理解为zero的缩写

"串 1"== "串 2"

若字符串1等于字符串2,则为真,即测试表达式成立,可使用"=="代替"="

"串 1" != "串 2"

若字符串1不等于字符串2,则为真,即测试表达式成立,但不能用"!=="代替"!="

1.对于字符串的测试,一定要将字符串加双引号之后再进行比较。

2.空格非空

练习:

使用read 进行交互式的取值

shell

整数判断>=<

整数二元比较操作符参考

[[ == ]]

-eq []

在[]以及test中

使用的比较符号

在(())和[[]]中

使用的比较符号

说明

-eq

==或=

相等,全拼为equal

-ne

!=

不相等,全拼为not equal

-gt

>

大于,全拼为greater than

-ge

>=

大于等于,全拼为greater equal

-lt

<

小于,全拼为less than

-le

<=

小于等于,全拼为less equal

let

"let "sum+=i"" 是一个基本的算术运算命令,用于将变量 sum 的值与变量 i 相加,并将结果赋给变量 sum。

这是一种在 Bash 脚本中进行算术运算的方式。在这个命令中,"let" 关键字用于指示开始进行算术运算,"sum+=i" 表达式表示将变量 sum 的值与变量 i 相加并更新给 sum。

以下是一个简单的示例,展示了如何使用这个命令:

bashCopy Code#!/bin/bash

sum=0

for ((i=1; i<=10; i++))
do
  let "sum+=i"
done

echo "Sum: $sum"

这个脚本将计算从 1 到 10 的所有整数的总和,并输出结果。在每次循环中,变量 i 的值会逐渐增加,而变量 sum 的值则会随之更新。最后,使用 echo 命令输出变量 sum 的值。

请注意,使用这种方式进行算术运算时,等号(=)两边不要有空格,以避免语法错误。

&& ||

&& 当第一个条件成立的时候 1 再执行第二个条件

第一个条件不成立 直接返回0

|| 当第一个条件不成立的时候 才会执行第二个条件

当第一个条件成立的时候 就不执行第二个条件

常用逻辑操作符

在[]和test中使用的操作符

说明

在[[]]和中使用的操作符

说明

-a

[ 条件A -a 条件B ]

A与B都要成立,整个表达式才成立

&&

and,与,两端都为真,则结果为真

-o

[ 条件A -o 条件B]

A与B都不成立,整个表达式才不成立

||

or,或,两端有一个为真,则结果为真

!

not,非,两端相反,则结果为真

if

单分支

双分支

多分支

>=90优秀
>=80 良好
>=70 中等
>=60 及格
#! /bin/sh
if [ $# == 0 ]
then
 echo "没有参数"
else
    if [ $1 -ge 90 ]
     then
       echo "非常优秀!!!"
    elif [ $1 -ge 80 ]
      then
        echo "优秀"
    elif [ $1 -ge 70 ]
       then
        echo "良好"
    elif [ $1 -ge 60 ]
     then
      echo "及格"
    else
      echo "不及格"
    fi
fi

case

#!/bin/bash
case $1 in
   1)
    echo "第一季度"
    ;;
   2)
    echo "第二季度"
    ;;
   *)
    echo "其他季度" 

esac

for

while

until

跳出循环

shell中也支持break跳出循环, continue跳出本次循环.用法与C, Java中相同

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值