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

简单的shell编程

1.学习shell编程首先要了解shell编程是什么 ?

它是指使用 Shell 脚本语言编写程序的过程,它在 Linux、Unix 以及 macOS 等操作系统中广泛应用

详细介绍

Shell 编程的用途

  • 自动化任务:可以编写 Shell 脚本来自动执行一系列重复性的任务,如文件备份、系统监控、软件安装等,从而提高工作效率。
  • 系统管理:系统管理员可以使用 Shell 脚本对服务器进行配置和管理,例如批量创建用户、修改文件权限、监控系统资源等。
  • 数据处理:通过结合各种命令行工具,Shell 脚本能够对文本数据进行处理和分析,如提取特定信息、统计数据、生成报表等。

编写和执行 Shell 脚本的步骤

  1. 创建脚本文件:使用文本编辑器(如 vivimnano 等)创建一个以 .sh 为扩展名的文件,例如 test.sh
  2. 添加脚本内容:在文件中编写 Shell 脚本代码。
  3. 赋予执行权限:使用 chmod 命令为脚本文件赋予执行权限,例如 chmod +x test.sh
  4. 执行脚本:在终端中输入脚本文件的路径来执行脚本,例如 ./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

相关文章:

  • Java8 LocalDate LocalTime LocalDateTime的使用
  • 玄机-第五章 Windows 实战-evtx 文件分析的测试报告
  • position embedding
  • 【测试报告】论坛系统
  • 语言解码双生花:人类经验与AI算法的镜像之旅
  • 树状数组模板
  • 【redis】哨兵:搭建主从/哨兵节点详解和细节
  • 【WebGIS教程2】Web服务与地理空间服务解析
  • Java:JDK8 新特性:Lambda表达式
  • Vulnhub-Thales通关攻略
  • 第30周Java分布式入门 ThreadLocal
  • 无法打开... .exe进行写入 解决方法
  • vue中defineModel简化defineProps和defineEmits的用法
  • KofamKOALA:KEGG本地化注释
  • 无线安灯按钮盒汽车零部件工厂的故障告警与人员调度专家
  • 【干货,实战经验】nginx缓存问题
  • 程序员英语口语练习笔记
  • python dict转换成json格式
  • 深入解析Flink Kafka Connector的分布式流数据采集架构与底层实现
  • 2025最新版Ubuntu Server版本Ubuntu 24.04.2 LTS下载与安装-详细教程,细致到每一步都有说明
  • 短视频万能素材库/seo搜索引擎优化实训总结
  • 新手学做网站下载/百度seo如何优化
  • 百度云建站WordPress/百度关键词排名联系方式
  • 汕头多语种网站制作/沪深300指数
  • 中国制造网官方网站入口网址/神秘网站
  • 慈利做网站在哪里/今天发生的重大新闻5条