当前位置: 首页 > wzjs >正文

wordpress用户中心模板天津seo网络营销

wordpress用户中心模板,天津seo网络营销,手机怎么做淘客网站,做变态手术视频网站目录 一、Shell脚本语言的基本结构 1、Shell脚本的用途: 2、 Shell脚本基本结构: 3、 创建Shell脚本过程 4、 脚本注释规范 5、第一个脚本 6、 执行脚本 7、脚本错误 二、Shell脚本语言的变量用法详解 1、变量 2、 变量类型 3、 Shell中变量命…

目录

一、Shell脚本语言的基本结构

1、Shell脚本的用途:

2、 Shell脚本基本结构:

3、 创建Shell脚本过程

4、 脚本注释规范

5、第一个脚本

6、 执行脚本

7、脚本错误

二、Shell脚本语言的变量用法详解

1、变量

2、 变量类型

3、 Shell中变量命名法则

4、 变量定义和引用

5、 环境变量

6、只读变量

7、位置变量

8、 退出状态码变量

三、 Shell字符串详解

1、Shell字符串拼接

2、Shell字符串截取

四、Shell脚本语言的运算

4.1 算数运算

4.2 Bash中的算术运算

4.2 实现算术运算

4.3 增强型赋值:

4.2 逻辑运算


一、Shell脚本语言的基本结构

1、Shell脚本的用途:

自动化常用命令

执行系统管理和故障排除

创建简单的应用程序

处理文本或文件

2、 Shell脚本基本结构:

Shell脚本编程:是基于过程式,解释执行的语言

编程语言的基本结构:

  • 各种系统命令的组合

  • 数据存储:变量,数组

  • 表达式:a+b

  • 控制语句:if、case、for、while

shell脚本:包含一些命令或声明,并符合一定格式的文本文件

格式要求:首行执行shebang机制

#声明后续语句是通过那种语言写的
#!/bin/bash
#!/usr/bin/python
#!/usr/bin/perl

3、 创建Shell脚本过程

使用vim创建文本文件,第一行必须包括shell声明序列:
#!/bin/bash
[root@localhost log]# echo  $SHELL
/bin/bash加执行权限,给予执行权限,在命令行上指定脚本的绝对或相对路径

加执行权限,给予执行权限,在命令行上指定脚本的绝对或相对路径

[root@localhost ~]# vim scripts1.sh
[root@localhost ~]# chmod +x script1.sh

运行脚本,直接运行解释器,将脚本作为解释器程序的参数运行

[root@localhost ~]# /root/shellScript/hello.sh 

4、 脚本注释规范

  • 第一行一般为调用使用的语言

  • 程序名,避免更改文件名为无法找到正确的文件

  • 版本号

  • 更改后的时间

  • 作者相关信息

  • 该程序的作用,及注意事项

  • 最后是各版本的更新简要说明

#!/bin/bash
3auth:Mr  yuetangbinghua
#Use:列出系统中的普通文件
Date:2026年——06——04
#version: 1.0
cd /home
。/script1.sh
find /home -type f

5、第一个脚本

[root@localhost ~]# cat shell/hostname.sh 
#!/bin/bash
echo "My hostname is `hostname`"
echo "Time is `date +'%F %T'`"
[root@localhost ~]# chmod +x shell/hostname.sh
[root@localhost ~]# shell/hostname.sh

6、 执行脚本

1、增加执行权限,执行脚本时会创建一个子shell,不影响现有的shell环境

chmod +x sh
./sh
/root/shellScript/sh

2、使用 . 或者source,执行脚本时不会创建一个子shell,会影响现有的shell环境

source sh
. sh

不要使用(点)方式执行脚本

7、脚本错误

  • 语法错误,会导致后续的命令不继续执行,可以用bash -n shellname检查错误

  • 命令错误,后续的命令还会继续,可以使用bash -x shellname检查

  • 逻辑错误,只能使用bash -x进行观察

二、Shell脚本语言的变量用法详解

1、变量

变量表示命名的内存空间,将数据放在内存空间中,通过变量名引用,获取数据

2、 变量类型

变量类型:

内置变量:如PS1,PATH,UID,HOSTNAME,HISTSIZE

用户自定义变量

预定义变量

位置变量

不同的变量存放的数据不同,决定了以下:

  1. 数据存储方式

  2. 参与的计算

  3. 表示的数据范围

变量数据类型:

  • 字符串

  • 数值:整型,浮点型(小数)、bash不支持浮点数

3、 Shell中变量命名法则

  • 不能使用程序中的保留字,如:if,for

  • 只能使用数字,字母及下划线,且不能以数字开头

  • 见名思意,用英文名字,并体现真正含义

  • 统一命名规则:驼峰命名法

  • 全局变量名大写

  • 局部变量小写

  • 函数名小写

    [root@localhost ~]# a=1
    [root@localhost ~]# echo  $7[root@localhost ~]# ls /etc/  /home/
    

  • [root@localhost ~]# a=2
    [root@localhost ~]# n1=1
    [root@localhost ~]# userName=list
    [root@localhost ~]# env
    [root@localhost ~]# export  a-1
    bash: export: `a-1': 不是有效的标识符
    [root@localhost ~]# bash
    [root@localhost ~]# echo  $a[root@localhost ~]# exit
    exit

4、 变量定义和引用

变量的生效范围(变量作用域)

  • 普通变量:生效范围为当前shell进程;对当前shell之外的其他shell进程,包括当前shell的子shell进程均无效

  • 环境变量:生效范围为当前shell进程及其子进程

  • 本地变量:生效范围为当前shell进程中某代码片段,通常指函数

[root@localhost ~]# rs2=./*
[root@localhost ~]# echo  $rs2
./公共 ./模板 ./视频 ./图片 ./文档 ./下载 ./音乐 ./桌面 ./anaconda-ks.cfg ./hexiuxiu.md ./hutao ./ifcfg-ens160 ./initial-setup-ks.cfg ./liyue ./scripts1.sh ./wangziyi ./yunji

注意:变量赋值是临时生效,当退出终端后,变量会自动删除,无法持久保存。

变量引用:

$name
${name}

弱引用和强引用:

  • “$name”:弱引用,其中的变量引用会被替换成为变量值

  • ‘$name’:强引用,其中的变量引用不会被替换成变量值,而保持原字符串

删除变量

[root@localhost ~]# set  |  wc  -l
3106
[root@localhost ~]# unset  str1
[root@localhost ~]# echo  $str1[root@localhost ~]# str1=wang
[root@localhost ~]# 
[root@localhost ~]# 
[root@localhost ~]# 
[root@localhost ~]# echo  $str2
$str1
[root@localhost ~]# echo  $str3
yueliang
[root@localhost ~]# str4=$str1444
[root@localhost ~]# echo  $str4[root@localhost ~]# str4=${str1}444

利用变量实现动态命令

[root@localhost ~]# CMD=hostname
[root@localhost ~]# $CMD
localhost.localdomain
[root@localhost ~]#

5、 环境变量

环境变量:

  • 可以使子进程(包括孙子进程)继承父进程的变量,但是无法让父进程使用子进程的变量。

  • 一旦子进程修改了从父进程继承的变量,将会传递新的值给孙子进程

  • 一般只在配置文件中使用,在脚本中较少使用

[root@localhost ~]# vim shell/father.sh 
#!/bin/bash
NAME=father
echo "father.sh:NAME=$NAME"
echo "fatther is PID=$BASHPID"
shell/son.sh[root@localhost ~]#vim shell/son.sh
#!/bin/bash
echo "son.sh:NAME=$NAME"
NAME=son
echo "son.sh:NAME=$NAME"
echo "son.sh PID is $BASHPID"
echo "son.sh father pid is $PPID"
sleep 100[root@localhost ~]#chmod -R +x shell/*[root@localhost ~]# ./shell/father.sh 
father.sh:NAME=father
fatther is PID=12053
son.sh:NAME=
son.sh:NAME=son
son.sh PID is 12054
son.sh father pid is 12053

6、只读变量

只读变量:只能声明定义,但后续不能修改和删除

7、位置变量

位置变量:在Bash Shell中内置的变量,在脚本代码中调用命令行传递给脚本的参数

[root@localhost ~]# vim shell/ARG.sh
#!/bin/bash
echo "1st arg is $1"
echo "2st arg is $2"
echo "3st arg is $3"
echo "4st arg is $4"
echo "The number of are is $#"
echo "All args are $*"
echo "All args are $@"
echo "The scriptname is `basename $0`"
[root@localhost ~]# chmod +x shell/ARG.sh 
[root@localhost ~]# shell/ARG.sh {1..10}
1st arg is 1
2st arg is 2
3st arg is 3
4st arg is 4
The number of are is 10
All args are 1 2 3 4 5 6 7 8 9 10
All args are 1 2 3 4 5 6 7 8 9 10
The scriptname is ARG.sh

8、 退出状态码变量

进程执行后,将使用变量 ? 保存状态码的相关数字,不同的值反应成功与失败, ?保存状态码的相关数字,不同的值反应成功与失败, ?保存状态码的相关数字,不同的值反应成功与失败,的取值范围为[0,255]

[root@localhost ~]# ping -c 2 www.baidu.com > /dev/null 
[root@localhost ~]# echo $?
0
[root@localhost ~]# cmd
-bash: cmd: 未找到命令
[root@localhost ~]# echo $?
127
[root@localhost ~]# 

exit表示退出当前 Shell 进程,我们必须在新进程中运行 test.sh,否则当前 Shell 会话(终端窗口)会被关闭,我们就无法取得它的退出状态了

三、 Shell字符串详解

字符串(String)就是一系列字符的组合。字符串是Shell编程中最常用的数据类型之一

字符串可以由单引号''包围,也可以由""包围,也可以不用引号,三种方式的区别

1由单引号' '包围的字符串
2由双引号" "包围的字符串
3不被引号包围的字符串#!/bin/bash
n=74
str1=c.biancheng.net$n 
str2="shell \"Script\" $n"
str3='C语言中文网 $n'
echo $str1
echo $str2
echo $str3# 运行结果
c.biancheng.net74
shell "Script" 74
C语言中文网 $n

1、Shell字符串拼接

#!/bin/bash
name="shell"
url="http://c.biancheng.net/shell/"
str1=$name$url 
str1=$name":"$url
str2="$name $url"
str3="$name:$url" 
str4="${name}Script:${url}Index.html" 

2、Shell字符串截取

Shell截取字符串通常有两种方式,从指定位置开始截取和从指定字符(子字符串)开始截取

从指定位置开始截取

1.从字符串左边开始计数

url="c.biancheng.net"
echo ${url:2:9}>结果为:bianchengurl="c.biancheng.net"
echo ${url:2} #省略length,截取到字符串末尾>结果为:biancheng.net

2.从右边开始计数

如果想从字符串的右边开始计数,那么截取字符串的具体格式如下

url="c.biancheng.net"
echo ${url:0-13:9}>结果为:biancheng 从右边数:b是第13个字符url="c.biancheng.net"
echo ${url:0-13} #省略length,直接截取到字符串末尾
>结果为:biancheng.net

从指定字符(子字符串)开始截取

这种截取方式无法指定字符串长度,只能从指定字符(子字符串)截取到字符串末尾。Shell可以截取指定字符(子字符串)右边的所有字符,也可以截取左边的所有字符

1)使用#号截取右边字符

使用#号可以截取指定字符(或子字符串)右边的所有字符,具体格式如下:

url="http://c.biancheng.net/index.html"
echo ${url#*:}>结果为://c.biancheng.net/index.htmlecho ${url#*p:}
echo ${url#*ttp:}

使用##可以直到最后一个指定字符(子字符串)再匹配结束

#!/bin/bash
url="http://c.biancheng.net/index.html"
echo ${url#*/}
# 结果为:/c.biancheng.net/index.html
echo ${url##*/}
# 结果为:index.html

2)使用%截取左边字符

使用%号可以截取指定字符(或者子字符串)左边的所有字符

四、Shell脚本语言的运算

4.1 算数运算

shell支持算术运算,但只支持整数,不支持小数

4.2 Bash中的算术运算
-- + 加法运算
-- - 减法运算
-- * 乘法运算
-- / 除法运算
-- % 取模,即取余数
-- ** 乘方 #乘法符号在有些场景需要转义
4.2 实现算术运算
[root@localhost ~]# echo "scale=3;20/3"|bc
6.666
[root@localhost ~]# echo "scale=3;2/3"|bc
.666
[root@localhost ~]# i=20
[root@localhost ~]# j=20
[root@localhost ~]# declare -i sum=i*j
[root@localhost ~]# echo $sum
400

内建的随机数生成器变量:

$RANDOM  取值范围:0-32767

[root@localhost ~]# echo $[$[$RANDOM%50]+1]
40
[root@localhost ~]# echo $[$RANDOM%50]
44
[root@localhost ~]# echo $[$[$RANDOM%50]+1]  #生成1~50之间的随机数
[root@localhost ~]# echo $[RANDOM % 100 + 1]

生成随机颜色字符串

[root@localhost ~]# echo -e "\033[1;$[RANDOM%7+31]mStudy\033[0m"
Study
[root@localhost ~]# echo -e "\033[1;$[RANDOM%7+31]mStudy\033[0m"
Study
4.3 增强型赋值:
[root@localhost ~]# let var+=1
[root@localhost ~]# echo $var
1
[root@localhost ~]# let var++
[root@localhost ~]# echo $var
2
[root@localhost ~]# let var-=1
[root@localhost ~]# echo $var
1
[root@localhost ~]# let var--
[root@localhost ~]# echo $var
0
[root@localhost ~]#[root@localhost ~]# unset i j ;i=1;let j=i++;echo "i=$i,j=$j" 
i=2,j=1
[root@localhost ~]# unset i j ;i=1;let j=++i;echo "i=$i,j=$j"
i=2,j=2

4.2 逻辑运算

True用数字表示1,False用数字表示0

http://www.dtcms.com/wzjs/92229.html

相关文章:

  • 免费的公司起名网北京优化核酸检测
  • 阿里云服务器做网站好用吗谷歌推广怎么做最有效
  • 上海专业高端网站建设服务vi设计
  • 怎么做论坛社区网站seo排名软件价格
  • 域名刚到期就被跳转到其他网站东莞商城网站建设
  • 在国外社交网站做产品推广seo快速排名培训
  • 科威网络做网站怎么样国际热点事件
  • 长春网站建设有什么百度问答平台
  • 北京做网站灰色关键词排名收录
  • 门户网站建设的好处厦门人才网个人会员
  • 工程建设期刊网站军事新闻最新消息今天
  • 班级网站建设主题如何免费推广自己的产品
  • 常州网站外包北京疫情最新新闻
  • 一个服务器做一样的网站灯塔seo
  • 最好的网站建设组织域名访问网站怎么进入
  • wordpress如何加插件广告优化师的工作内容
  • 义乌做网站多少钱营销运营主要做什么
  • 买好域名后怎么做网站指定关键词排名优化
  • 南浔做网站seo优化师
  • 做网站送白酒引擎优化seo
  • 如何做网站方案静态网页制作
  • 有没有在网上做ps赚钱的网站seo排名快速上升
  • wamp网站根目录配置惠州疫情最新情况
  • 做兼职的网站是不是真的百度站长平台网页版
  • 专门做卫生间效果图的网站2022年网络流行语
  • 怎么知道网站是谁做的seo每日工作内容
  • 北京做网络工程公司的网站南宁百度seo建议
  • 两学一做网站视频百度一下app下载安装
  • 编程网站排名淘宝seo培训
  • 网站建设集团郑州网站优化