Linux中的shell编程

news/2024/7/7 22:21:17

shell编程

重定向

cat >temp

输入内容到temp文件中,如果存在temp则覆盖,没有则新建

cat >>temp

追加内容

cat temp1>>temp2

将temp1中的内容追加到temp

命令执行控制符号

; 一个命令行执行多条语句

命令替换符

1.双引号:用于带空格的字符串

2.单引号 阻止shell解析字符串

3.单撇反引号:将执行命令的结果放到变量里

转义符

variable=\$bva

\阻止shell对”$“元字符的解释工作

变量

  • 变量名=字符串

  • $变量名 或 ${变量名} 访问变量

unset 变量名取消变量名

final变量

readonly 变量名

变量的数值运算

无法直接进行,可通过expr运算符

expr $num1 运算符 $num2

如果运算符为*,&,|,<,>必须用\转义符使其失去特殊含义

命令别名

alias

直接使用可查看命令别名

自定义命令别名

alias 别名=”原命令“

unalias 别名 取消别名

历史命令

history [-c] [n]

-c 清空(clear)

-n n为数字,即显示几条命令

==!!==上一条命令,感觉用处不大

第一个shell脚本

#! /bin/bash
# 注释
echo ”hello world“
date

执行

1.授权

chmod 775 脚本名

chmod a+x 脚本名

2.用 source 脚本名执行

交互式shell脚本

read -p "please input your name" name
echo "hello " $name

执行

bash name

注释

单行注释#
多行注释:<<EOF 代码 EOF 或:<<’ 代码’ 或:<<! codeContent !

分支结构

在这里插入图片描述
在这里插入图片描述

逻辑判断

只支持数字的关系运算符

-eq等于
- neqnot equal
-gtA greater than B
-ltA less than B
-ge
-le
-a and (&&)
-o or (||)
!

脚本调试

bash [-x][-n] 脚本名
-x执行脚本本同时显示脚本语句
-n检查语法错误不执行

函数

在这里插入图片描述

字符串

  • 获取字符串长度
${#string};
${#string[0]}
  • 提取子字符串
${string:1:4}

数组

  • 定义数组

值与值之间用空格隔开

数组名=(值1 值2 ... 值n)
  • 读取数组元素
${数组名[下标]} 读取单个
${数组名[@]} 读取全部
  • 读取数组长度
${#数组名[@]}

|

函数

[外链图片转存中…(img-AZme5QDw-1655274286263)]

字符串

  • 获取字符串长度
${#string};
${#string[0]}
  • 提取子字符串
${string:1:4}

数组

  • 定义数组

值与值之间用空格隔开

数组名=(值1 值2 ... 值n)
  • 读取数组元素
${数组名[下标]} 读取单个
${数组名[@]} 读取全部
  • 读取数组长度
${#数组名[@]}

http://lihuaxi.xjx100.cn/news/1704024.html

相关文章

上次的那段代码后续

之前写了一篇文章&#xff0c;说是一个要修改一个代码&#xff0c;很多人评论说代码说得不清不楚&#xff0c;不过在评论说又解释了一波之后&#xff0c;大家至少对这个代码有理解了&#xff0c;至少知道这个代码是做什么事情了。 如果是你&#xff0c;会不会修改这段代码&…

【每日一题】统计无向图中无法互相到达点对数

文章目录 Tag题目来源题目解读解题思路方法一&#xff1a;并查集方法二&#xff1a;DFS乘法原理 写在最后 Tag 【DFS乘法原理】【并查集】【图】【数组】【2023-10-21】 题目来源 2316. 统计无向图中无法互相到达点对数 题目解读 节点之间的连接关系是通过数组给出的&#x…

[人工智能-综述-15]:第九届全球软件大会(南京)有感 -4-大语言模型全流程、全方面提升软件生产效能

目录 一、软件生产通用模型 1.1 企业软件生产模型 1.2 软件项目管理 VS 软件工程 1.3 企业管理与部门管理 二、第一步&#xff1a;企业数字化&#xff1a;企业信息系统 三、第二步&#xff1a;软件生产自动化&#xff1a;DevOps 四、第四步&#xff1a;软件生产智能化&a…

【Edabit 算法 ★☆☆☆☆☆】 Is the Number Less than or Equal to Zero?

【Edabit 算法 ★☆☆☆☆☆】 Is the Number Less than or Equal to Zero? language_fundametals validation conditions Instructions Create a function that takes a number as its only argument and returns true if it’s less than or equal to zero, otherwise ret…

项目八认识函数

认识函数 概述 函数是实现特定功能的代码段,是模块化程序设计的需要,使用函数的目的是提高程序的复用性。 模块化就是将每一个程序分解成若干个模块,就像“组装”计算机一样,在C语言中可以利用函数实现模块化设计 程序实现的方法主要有两种:一体化和模块化一体化是指将一…

MIT 6.824 -- Cache Consistency -- 11

MIT 6.824 -- Cache Consistency -- 11 引言严峻挑战锁服务缓存一致性问题案例演示优化 原子性问题故障恢复问题log内容故障恢复 小结 课程b站视频地址: MIT 6.824 Distributed Systems Spring 2020 分布式系统 推荐伴读读物: 极客时间 – 大数据经典论文解读DDIA – 数据密集…

java1.8流的新特性使用

案例描述 今天跟着黑马程序员的视频&#xff0c;完成“瑞吉外卖”项目的菜品信息管理模块的时候&#xff0c;遇到了一个比较陌生的写法 用到了Java8的新特性 stream().map((item) -> {}).collect() List<DishDto> collect records.stream().map((item) -> {DishDt…

粤嵌实训医疗项目--day01(Vue+SpringBoot)

目录 一、创建工作空间及配置Maven环境 二、创建springboot项目整合web操作 三、http请求参数获取及登录页面访问操作 四、数据库设计、数据库创建及导入sql 五、使用mybatis-plus逆向工程生成代码【vaccinum】 六、JavaEE三层架构概念及user查询实现 七、mybatis-plus逆…