简单的shell编程
1.学习shell编程首先要了解shell编程是什么 ?
它是指使用 Shell 脚本语言编写程序的过程,它在 Linux、Unix 以及 macOS 等操作系统中广泛应用
详细介绍
Shell 编程的用途
- 自动化任务:可以编写 Shell 脚本来自动执行一系列重复性的任务,如文件备份、系统监控、软件安装等,从而提高工作效率。
- 系统管理:系统管理员可以使用 Shell 脚本对服务器进行配置和管理,例如批量创建用户、修改文件权限、监控系统资源等。
- 数据处理:通过结合各种命令行工具,Shell 脚本能够对文本数据进行处理和分析,如提取特定信息、统计数据、生成报表等。
编写和执行 Shell 脚本的步骤
- 创建脚本文件:使用文本编辑器(如
vi
、vim
、nano
等)创建一个以.sh
为扩展名的文件,例如test.sh
。 - 添加脚本内容:在文件中编写 Shell 脚本代码。
- 赋予执行权限:使用
chmod
命令为脚本文件赋予执行权限,例如chmod +x test.sh
。 - 执行脚本:在终端中输入脚本文件的路径来执行脚本,例如
./test.sh
。
语法介绍 语法与C语言类似 但是请注意 shell 的程序要严格的空格控制
echo "Hello World !" 这个echo可以理解为 其他语言的输出代码 如果你在test.sh中这么写那么运行出来就是 Hello World!
2.变量:
定义:name="fj"
name 就是一个变量
注意:不能以数字开头,不能使用shell关键字 使用大写字母表示常量 避免使用特殊符号,变量名中不要包含空格
使用的时候 echo $name 这样就可以了
只读变量:
myUrl="https://www.google.com"
readonly myUrl 加上 redonly 就是只读的变量了
删除变量:
unset name 使用这个就可以删除 只读变量不能删除
数组变量:
Shell 也支持数组,允许你在一个变量中存储多个值。
数组可以是整数索引数组或关联数组,以下是一个简单的整数索引数组的例子:
array=(1,2,3,4,5)
环境变量: 这些是由操作系统或用户设置的特殊变量,用于配置 Shell 的行为和影响其执行环境。
例如,PATH 变量包含了操作系统搜索可执行文件的路径:
echo $PATH
拼接字符串
name="fj"
# 使用双引号拼接
greeting="hello, "$name" !"
greeting_1="hello, ${name} !"
echo $greeting $greeting_1
# 使用单引号拼接
greeting_2='hello, '$name' !'
greeting_3='hello, ${ame} !'
echo $greeting_2 $greeting_3
输出结果为:
hello, runoob ! hello, runoob !
hello, runoob ! hello, ${your_name} !
获取字符串长度
string="abcd"
echo ${#string} # 输出 4
变量为字符串时,${#string} 等价于 ${#string[0]}: #号
string="abcd"
echo ${#string[0]} # 输出 4
提取子字符串
以下实例从字符串第 2 个字符开始截取 4 个字符:
string="fj666999"
echo ${string:1:4} # 输出 j666
注意:第一个字符的索引值为 0。
查找子字符串
查找字符 i 或 o 的位置(哪个字母先出现就计算哪个):
string="runoob is a great site"
echo `expr index "$string" io` # 输出 4
注意: expr中 ` 是反引号,而不是单引号 ',
Shell 传递参数
我们可以在执行 Shell 脚本时,向脚本传递参数,脚本内获取参数的格式为 $n,n 代表一个数字,1 为执行脚本的第一个参数,2 为执行脚本的第二个参数。
例如可以使用 $1、$2 等来引用传递给脚本的参数,其中 $1 表示第一个参数,$2 表示第二个参数,依此类推。
以下实例我们向脚本传递三个参数,并分别输出,其中 $0 为执行的文件名(包含文件路径):
demo2Fun(){
echo "第一个参数为 $1 !"
echo "第二个参数为 $2 !"
echo "参数总数 $# 个!"
echo "参数作为字符串输出 $* !"
echo "第五个参数为 $5 !"
echo "第0个参数为 $0"
echo "第五个参数为 ${5}"
}
demo2Fun 1 2 3 4 50 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 100
可以自己尝试
Shell test 命令
Shell中的 test 命令用于检查某个条件是否成立,它可以进行数值、字符和文件三个方面的测试。
数值测试
参数 | 说明 |
---|---|
-eq | 等于则为真 |
-ne | 不等于则为真 |
-gt | 大于则为真 |
-ge | 大于等于则为真 |
-lt | 小于则为真 |
-le | 小于等于则为真 |
f else-if else
if else-if else 语法格式:
if condition1
then
command1
elif condition2
then
command2
else
commandN
fi
if else 的 [...] 判断语句中大于使用 -gt,小于使用 -lt。
if [ "$a" -gt "$b" ]; then
...
fi