linux系统编程shell,Linux系统中的 Shell 编程
文章目录
一.Shell Script 介绍
1.概念
shell脚本是包含一系列命令的文本文件
shell读取此文件并执行命令
2.应用场景
重复性操作
批量事务处理
自动化运维
定时任务执行
3.demo:第一个Shell脚本test.sh
输入 : vi test.sh ,输入如下内容然后保存退出
#!/bin/bash
echo "hello, shell,you're very pretty"
输入: chmod +x test.sh ,赋予文件执行权限
输入: ./test.sh ,执行该脚本文件,效果如下:
注意:#!是一个约定的标记,他告诉系统这个脚本需要用解释器来执行
二.变量
1.三种引号的作用:
1)反引号:引用命令的结果
2)单引号:强引用,引号中什么内容就输出什么内容
3)双引号:弱引用,可引用变量的值
2.变量的定义和使用
1)demo01
1.新建一个param.sh,写入如下内容
#!/bin/bash
#变量定义不需要声明类型
abc=123
#变量的值可以用$符号获取
aaa=$JAVA_HOME
aaa=abc
#间接引用,用aaa的值去找变量,若这个变量有值,分配给def
def=${!aaa}
#找abc的第一个1替换为h
abc=${abc/1/h}
#使用反引号将该命令的结果赋值给变量
path=`pwd`
#打印结果
echo ${aaa}aaa${abc}
echo $def
echo $path
2.给与执行权限,并执行文件,结果如下:
2)demo02:整数表达式运算
新建文件,内容如下:
#!/bin/bash
#方式一:
a=1
b=2
((c=$a+$b))
echo c的值: $c
#方式二:
d=$[ $a+$b ]
echo d的值: $d
给与执行权限执行结果如下:
3.预定义变量
选项
说明
$#
命令行参数或位置参数的数量
$?
最近一次执行的命令或shell脚本的出口状态
$*
表示所有的位置参数,其值是所有位置参数的值
$$
变量是shell脚本里面的进程id,shell脚本经常使用$$变量组织临时文件名,确保文件名唯一性
4.位置变量
$n(n为数字) : $0 代表命令本身,$1-$9代表顺序参数编号,大于10的话使用括号,如${10}
示例如下:
#!/bin/bash
echo 参数个数: $#
echo 所有位置参数: $*
echo '上一句结果(执行成功为0):' $?
echo 进程id: $$
echo 当前命令: $0
echo 第一个参数: $1
echo 第二个参数: $2
执行结果如下:
三.数值关系运算符
1.数值关系运算符
选项
说明
-eq
等于
-ne
不等于
-gt
大于
-lt
小于
-ge
大于等于
-le
小于等于
2.逻辑运算符
选项
说明
-a 或者 &&
逻辑与
-o 或者 ||
逻辑或
!
逻辑否
3.字符串运算符
选项
说明
=
等于
!=
不等于
-z
判断是否为空
4.文件运算符(写在文件或目录前面)
选项
说明
-d
判断是否为目录
-e
判断目录或文件是否存在
-f
判断是否为文件
-r
判断文件或目录针对当前用户是否可读
-w
判断文件或目录针对当前用户是否可写
-x
判断文件或目录针对当前用户是否可执行
四.流程控制语句
if语句:
1.if语句:
if
then
fi
2.if-else语句:
if
then
...
else
...
fi
3.if-else-if语句:
if
then
...
elif
then
...
else
...
fi
for循环:
1.普通for循环:
for((a=1;a<=5;a++))
do
...
done
2.增强for循环:
for a in param1 param2 param3 ...
do
...
done
while循环:
a=1
while [ a -le 5 ]
do
...
let "a++"
done
case语句:
case 变量 in
值1)
...
;;
值2)
...
;;
*)
...
;;
esac
五.shell的函数
语法如下:
函数名(){
#函数体具体代码
}
函数名-->注意没有括号直接用函数名调用
示例:求1-100的和
#!/bin/bash
read -p "请输入一个大于1的整数:" n
a(){
count=0
for((a=1;a<=n;a++))
do
((count=$count+$a))
done
echo 总和为: $count
}
a
-运行结果如下:
标签:语句,...,Shell,变量,编程,echo,运算符,shell,Linux
来源: https://blog.csdn.net/sun_0128/article/details/106896396
linux系统编程shell,Linux系统中的 Shell 编程相关推荐
- linux默认csh修改命令,Solaris中默认Shell的修改以及命令行补全的设置
Solaris中默认Shell的修改以及命令行补全的设置 发布时间:2008-02-18 00:01:41来源:红联作者:qtsmy Solaris10 x86虽然可以跑起来,但有很多方面都用这和以前 ...
- python调用shell命令-python中执行shell命令的几个方法小结
最近有个需求就是页面上执行shell命令,第一想到的就是os.system, 复制代码 代码如下: os.system('cat /proc/cpuinfo') 但是发现页面上打印的命令执行结果 0或 ...
- python 执行shell 事务_python中执行shell的两种方法总结
一.使用python内置commands模块执行shell commands对Python的os.popen()进行了封装,使用SHELL命令字符串作为其参数,返回命令的结果数据以及命令执行的状态: ...
- Linux复制文件到usb设备中,使用shell脚本实现USB设备的加载与文件复制
使用shell脚本实现USB设备的加载与文件复制 在Linux操作系统中,如果插入一个USB设备,需要用mount挂载命令才能实现这个设备的加载,下面写一个USB设备挂载与文件复制的Shell程序,程 ...
- python中执行shell命令_python中执行shell命令的几个方法小结-阿里云开发者社区
Python 执行 shell 命令 最近有个需求就是页面上执行shell命令,第一想到的就是os.system os.system('cat /proc/cpuinfo') 但是发现页面上打印的命令 ...
- 渗透测试常用反弹shell方法(如何渗透测试反弹shell?)-Linux篇(゚益゚メ) 渗透测试
文章目录 相关博客 反弹shell介绍 常用反弹方式 NetCat(NC)反弹 正向NC 反向NC Telnet反弹 正向shell 反向shell OpenSSL Curl 相关博客 Linux信息 ...
- Java 中的函数式编程
1. 概述 在本教程中,我们将了解函数式编程范式的核心原则以及如何在 Java 编程语言中使用它们. 我们还将介绍一些高级函数式编程技术.这将帮助我们了解 Java 中的函数式编程的好处. 2. 什么 ...
- less 函数_Python中的函数式编程教程,学会用一行代码搞定所有内容
前言 在本文中,您将了解什么是函数范型,以及如何在Python中使用函数式编程.在Python中,函数式编程中的map和filter可以做与列表相同的事情.这打破了Python的禅宗规则之一,因此函数 ...
- 了解和使用DotNetCore和Blazor中的异步编程
目录 介绍 您对异步编程了解什么? 那么,什么是异步编程? 我们什么时候应该使用它? 任务.线程.计划.上下文 到底是怎么回事? Asnyc编码模式 命名约定 异步任务模式 任务模式 事件模式 阻塞与 ...
最新文章
- 别再问我 new 字符串创建了几个对象了!我来证明给你看!
- JavaScript this 关键词
- 【转】centos安装vim7.4
- VMware安装kali linux 和中文汉化方法
- 电子邮件客户端程序_您更喜欢哪个电子邮件客户端?
- [算法] 十个经典排序算法
- CCF201809-3 元素选择器(100分)【文本处理】
- r720换固态硬盘后如何重装系统_联想R720重装Winddows10无法识别固态硬盘咋办
- Locality Sensitive Hashing(LSH)之随机投影法
- 详细解析十大排序算法(js实现)
- Android 锁屏,息屏情况下打开界面Activity,类似微信视频通话接电话时弹出接电话的界面
- 学习平面设计有哪些前途
- (五)JMockit的API:@Capturing--基础篇
- Python查找文件夹中含有指定关键字的文件
- 虫子满屏爬_三bug多线程示例程序浅析
- Ubuntu18.04 MOOS-ivp 编译运行
- Java人脸识别相册分类按时间分类相册按城市分类相册app源码
- python tushare获取股票数据_python调用tushare获取沪股通、深股通成份股数据
- 【树莓派开发】使用树莓派在Linux环境下编写C语言代码
- 0环权限高还是3环_环0到环3
热门文章
- keras + tensorflow —— 文本处理
- 机器学习基础(十一)—— Logistic Regression 梯度更新公式的推导
- python optimize_python多元拟合问题
- python自学教程-3D图示Python标准自学教程入门篇
- python就业方向-目前Python这么火,Python有哪些就业方向?
- python有哪些用途-Python有哪些用途
- python是什么软件-Python 是什么软件?
- python中文版软件下载-Python IDLE(Python集成开发环境)v3.7中文版
- python项目开发实例-有趣的十个Python实战项目,让你瞬间爱上Python!
- python单词的含义-python 前面几个单词含义