wordpress文章 插件,免费seo软件推荐,泰安的网站建设公司哪家好,网店都有哪些平台一、shell脚本概述
1、shell脚本概念 Shell 脚本是利用 shell 的功能所写的一个程序。这个程序是使用纯文本文件#xff0c;将一些 shell 的语法与命令#xff08;含外部命令#xff09;写在里面#xff0c;搭配正则表达式、管道命令与数据流重定向等功能。 2、Shell 脚…一、shell脚本概述
1、shell脚本概念 Shell 脚本是利用 shell 的功能所写的一个程序。这个程序是使用纯文本文件将一些 shell 的语法与命令含外部命令写在里面搭配正则表达式、管道命令与数据流重定向等功能。 2、Shell 脚本编写步骤 第一个 Shell 脚本文件
执行方式bash test.shsource test.sh./test.sh 二、shell脚本变量
1、变量介绍
变量来源于数学是计算机语言中能储存计算结果或能表示值的抽象概念。变量可以通过变量名访问。在指令式语言中变量通常是可变的
2、 变量的作用
用来存放系统和用户需要使用的特定参数值
变量名使用固定的名称由系统预设或用户定义变量值能够根据用户设置、系统环境的变化而变化
3、变量的命名要求 4、变量的分类 5、用户自定义变量
在 shell 编程中通常使用全大写变量方便识别
$ COUNT1
变量的调用在变量前加 $
$ echo $COUNT
Linux Shell/bash 从右向左赋值
$Yy$ X$Y$ echo $Xy
使用 unset 命令删除变量的赋值
$ Zhello$ echo $Zhello$ unset Z$ echo $Z
6、 用户自定义变量 1用户自定义变量 - 取值
双引号 : 允许通过 $ 符号引用其他变量值弱引用其中的变量引用会被替换为变量值单引号 : 禁止引用其他变量值 $ 视为普通字符强引用其中的变量引用不会被替换为变量值而保持源字符串反撇号 : 命令替换提取命令执行后的输出结果 和 $(...) 作用相同 2用户自定义变量 - 数组
echo $a 默认显示数组 a 的第一个元素echo ${a[0]} 显示数组中第一个元素以此类推echo ${a[-1]} 显示数组中最后一个元素echo ${a[*]} 和 echo ${a[]} 显示数组中所有元素echo ${#a[]} 显示数组中元素的个数echo ${a[]: 起始元素 id: 元素个数 ]} 显示数组中以起始元素为首的指定个数的元素注意这里起始元素 id 不能为负值unset a[n] 删除数组中的第 n 个元素unset a 删除 a 这个数组 7、只读变量
变量值不允许修改重新赋值的情况无法使用 unset 删除最快方法重启readonly
8、位置变量和预定义变量
$0 与键入的命令行一样包含脚本文件名$1,$2,......$9 ${10} 分别包含第一个到第十个命令行参数$# 包含命令行参数的个数$ 包含所有命令行参数“ $1,$2,......$9”$* 包含所有命令行参数是一个整体“ $1,$2,......$9”$? 包含前一个命令的退出状态$$ 包含正在执行进程的 ID 号
9、环境变量
常用环境变量
$USER 表示用户名称$HOME 表示用户的宿主目录$LANG 表示语言和字符集$PWD 表示当前所在工作目录$PATH 表示可执行用户程序的默认路径export 可以将变量指定为全局变量
三、shell语句
1、shell程序
Shell 程序由零或多条 shell 语句构成。 shell 语句包括三类 :
说明性语句功能性语句结构性语句 2、说明性语句注释行
以 # 号开始到该行结束不被解释执行 注释行可以出现在程序中的任何位置 , 既可以单独占用一行 , 也可以接在执行语句的后面 . 以 # 号开始到所在行的行尾部分都不被解释执行 .
例如 :
#! /bin/sh
#
# 本程序说明
#
command_1
command_2 # command_2 的语句说明
......
# 下面程序段的说明
command_m
......
command_n # command_n 语句的说明
......
3、功能性语句命令
1命令 -read
read 从标准输入读入一行 , 并赋值给后面的变量 , 其语法为 :
read var
把读入的数据全部赋给 var
read var1 var2 var3
把读入行中的第一个单词 (word) 赋给 var1, 第二个单词赋给 var2 ......把其余所有的词赋给最后一个变量 .如果执行 read 语句时标准输入无数据 , 则程序在此停留等侯 , 直到数据的到来或被终止运行。
2算术运算命令 -expr 算术运算命令 expr 主要用于进行简单的整数运算包括加 () 、减 - 、乘 \*) 、整除 / 和求模 % 等操作。例如 :
$ expr 12 5 \* 3
27
$ expr 3 - 8 / 2
-1
$ num9
$ sumexpr $num \* 6
$ echo $sum
54
3命令 -test
test 语句可测试三种对象 :字符串 整数 文件属性每种测试对象都有若干测试操作符
4字符串测试
s1 s2 测试两个字符串的内容是否完全一样s1 ! s2 测试两个字符串的内容是否有差异-z s1 测试 s1 字符串的长度是否为 0-n s1 测试 s1 字符串的长度是否不为 0
5整数测试
a -eq b 测试 a 与 b 是否相等a -ne b 测试 a 与 b 是否不相等a -gt b 测试 a 是否大于 ba -ge b 测试 a 是否大于等于 ba -lt b 测试 a 是否小于 ba -le b 测试 a 是否小于等于 b
6文件测试
-e name 测试一个文件是否存在-d name 测试 name 是否为一个目录-f name 测试 name 是否为普通文件-L name 测试 name 是否为符号链接-r name 测试 name 文件是否存在且为可读-w name 测试 name 文件是否存在且为可写-x name 测试 name 文件是否存在且为可执行-s name 测试 name 文件是否存在且其长度不为 0f1 -nt f2 测试文件 f1 是否比文件 f2 更新f1 -ot f2 测试文件 f1 是否比文件 f2 更旧
4、结构性语句 结构性语句主要根据程序的运行状态、输入数据、变量的取值、控制信号以及运行时间等因素来控制程序的运行流程。 主要包括
条件测试语句两路分支多路分支语句循环语句循环控制语句等