文章目录

一.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 编程相关推荐

  1. linux默认csh修改命令,Solaris中默认Shell的修改以及命令行补全的设置

    Solaris中默认Shell的修改以及命令行补全的设置 发布时间:2008-02-18 00:01:41来源:红联作者:qtsmy Solaris10 x86虽然可以跑起来,但有很多方面都用这和以前 ...

  2. python调用shell命令-python中执行shell命令的几个方法小结

    最近有个需求就是页面上执行shell命令,第一想到的就是os.system, 复制代码 代码如下: os.system('cat /proc/cpuinfo') 但是发现页面上打印的命令执行结果 0或 ...

  3. python 执行shell 事务_python中执行shell的两种方法总结

    一.使用python内置commands模块执行shell commands对Python的os.popen()进行了封装,使用SHELL命令字符串作为其参数,返回命令的结果数据以及命令执行的状态: ...

  4. Linux复制文件到usb设备中,使用shell脚本实现USB设备的加载与文件复制

    使用shell脚本实现USB设备的加载与文件复制 在Linux操作系统中,如果插入一个USB设备,需要用mount挂载命令才能实现这个设备的加载,下面写一个USB设备挂载与文件复制的Shell程序,程 ...

  5. python中执行shell命令_python中执行shell命令的几个方法小结-阿里云开发者社区

    Python 执行 shell 命令 最近有个需求就是页面上执行shell命令,第一想到的就是os.system os.system('cat /proc/cpuinfo') 但是发现页面上打印的命令 ...

  6. 渗透测试常用反弹shell方法(如何渗透测试反弹shell?)-Linux篇(゚益゚メ) 渗透测试

    文章目录 相关博客 反弹shell介绍 常用反弹方式 NetCat(NC)反弹 正向NC 反向NC Telnet反弹 正向shell 反向shell OpenSSL Curl 相关博客 Linux信息 ...

  7. Java 中的函数式编程

    1. 概述 在本教程中,我们将了解函数式编程范式的核心原则以及如何在 Java 编程语言中使用它们. 我们还将介绍一些高级函数式编程技术.这将帮助我们了解 Java 中的函数式编程的好处. 2. 什么 ...

  8. less 函数_Python中的函数式编程教程,学会用一行代码搞定所有内容

    前言 在本文中,您将了解什么是函数范型,以及如何在Python中使用函数式编程.在Python中,函数式编程中的map和filter可以做与列表相同的事情.这打破了Python的禅宗规则之一,因此函数 ...

  9. 了解和使用DotNetCore和Blazor中的异步编程

    目录 介绍 您对异步编程了解什么? 那么,什么是异步编程? 我们什么时候应该使用它? 任务.线程.计划.上下文 到底是怎么回事? Asnyc编码模式 命名约定 异步任务模式 任务模式 事件模式 阻塞与 ...

最新文章

  1. 别再问我 new 字符串创建了几个对象了!我来证明给你看!
  2. JavaScript this 关键词
  3. 【转】centos安装vim7.4
  4. VMware安装kali linux 和中文汉化方法
  5. 电子邮件客户端程序_您更喜欢哪个电子邮件客户端?
  6. [算法] 十个经典排序算法
  7. CCF201809-3 元素选择器(100分)【文本处理】
  8. r720换固态硬盘后如何重装系统_联想R720重装Winddows10无法识别固态硬盘咋办
  9. Locality Sensitive Hashing(LSH)之随机投影法
  10. 详细解析十大排序算法(js实现)
  11. Android 锁屏,息屏情况下打开界面Activity,类似微信视频通话接电话时弹出接电话的界面
  12. 学习平面设计有哪些前途
  13. (五)JMockit的API:@Capturing--基础篇
  14. Python查找文件夹中含有指定关键字的文件
  15. 虫子满屏爬_三bug多线程示例程序浅析
  16. Ubuntu18.04 MOOS-ivp 编译运行
  17. Java人脸识别相册分类按时间分类相册按城市分类相册app源码
  18. python tushare获取股票数据_python调用tushare获取沪股通、深股通成份股数据
  19. 【树莓派开发】使用树莓派在Linux环境下编写C语言代码
  20. 0环权限高还是3环_环0到环3

热门文章

  1. keras + tensorflow —— 文本处理
  2. 机器学习基础(十一)—— Logistic Regression 梯度更新公式的推导
  3. python optimize_python多元拟合问题
  4. python自学教程-3D图示Python标准自学教程入门篇
  5. python就业方向-目前Python这么火,Python有哪些就业方向?
  6. python有哪些用途-Python有哪些用途
  7. python是什么软件-Python 是什么软件?
  8. python中文版软件下载-Python IDLE(Python集成开发环境)v3.7中文版
  9. python项目开发实例-有趣的十个Python实战项目,让你瞬间爱上Python!
  10. python单词的含义-python 前面几个单词含义