当前位置:网站首页>shell specification and variables
shell specification and variables
2022-08-01 21:35:00 【Peanut Flavored Peanut Rice】
目录
前言
shellThe script is a computer program,Aimed at theUnixshell(A command line interpreter)运行.shellVarious kinds of tongues is considered a scripting language script.shellScript execution of typical operations include file operations、Program execution and print text.设置环境、To run the program and perform any necessary cleanup or logging script calledwrapper.
一.shell脚本概述
Shell是一个特殊的应用程序,它介于操作系统内核与用户之间,充当了一个“命令解释器”的角色,负责接收用户输入的操作指令(命令)并进行解释,将需要执行的操作传递给内核执行,并输出执行结果.Bash(/bin/bash)是目前大多数 Linux 版本采用的默认 Shell.
1.shell脚本
将要执行的命令按顺序保存到一个文本文件
给文件可执行权限
可结合各种shell控制语句以完成更复杂的操作
2.shell脚本应用场景
重复性操作
交互性任务
批量事务处理
Service running state control
定时任务执行
二.Shell脚本的构成
1.脚本申明(解释器):若第一行为“#!/bin/bash”,表示此行以下的代码语句是通过/bin/bash程序来解释执行,#!/bin/bash为默认解释器.还有其它类型的解释器,比如#!/usr/bin/python、#!/usr/bin/expect.
2.注释信息:以“#”开头的语句表示为注释信息,被注释的语句在运行脚本时不会被执行.
3.可执行语句:比如echo命令,用于输出" "之间的字符串.
4.Execute the script need to add the execute permissions
vim js.sh
#!/bin/bash
echo "my shell"
chmod o+x js.sh
三.管道作用
将管道符号“|”左侧的命令输出的结果,作为右侧命令的输入(处理对象),同一行命令中可以使用多个管道.
echo “123123” | passwd --stdin wk
The carrier of between two processes interact with each other,父进程和子进程
四.重定向
类型 操作符 用途
重定向输入 < 从指定的文件读取数据,Instead of the keyboard
重定向输入 > 将输出结果保存到指定的文件(覆盖原有内容)
>> 将输出结果追加到指定的文件尾部
标准错误输出 2> 将错误信息保存到指定的文件(覆盖原有文件)
2>> The error information appended to the specified file original
混合输出 &> 将标准输出、The standard error of the content is saved to the same file
五.变量的分类
格式: 变量名=变量值(=表示赋值)
环境变量: 由系统维护,用于设置工作环境
位置变量: 通过命令行给脚本程序传递参数
自定义变量:由用户自己定义、修改和使用
预定义变量:Bash中内置的一类变量,不能直接修改
$?=Judgment on an instruction can be normal output,能则返回0,不能则返回非0.
六.shell引号使用
单引号''
禁止引用其他变量值,$视为普通字符
双引号""
允许通过$符号引用其他变量值
反撇号``
命令替换,提取命令执行后的输出结果,`…`和$(…)作用相同
七.read的使用
交互式定义变量
八.变量的运算
加: echo `expr $a + $b`
减: echo `expr $a - $b`
乘: echo `expr $a \* $b`
除: echo `expr $a / $b`
取余:echo `expr $a % $b`
求圆的直径
#!/bin/bash
p=3.14
read -p "zhijin: " A
b=`echo "scale=2;A/2" | bc`
m=`echo "scale=2;$b^2" | bc`
M=`echo "scale=2;$p*$m" | bc`
echo $M
常用的运算表达式:
a=$(expr 12 \* 5)
a=$((12 * 5))
a=$[12 * 5]
let a=12*5
i++ 相当于 i=$[$i+1]
i-- 相当于 i=$[$i-1]
i+=2 相当于 i=$[$i+2]
九.EOF的用法
十.预定义变量
$*、[email protected]:表示命令或脚本要处理的参数.
$*:把所有参数看成以空格分隔的一个字符串整体,代表"$1 $2 $3 $4".
[email protected]:把各个参数加上双引号分隔成n份的参数列表,每个参数是独立的,代表"$1" "$2" "$3" "$4".
$0:表示当前执行的脚本或命令的名称.
$#:表示命令或脚本要处理的参数的个数.
$?:表示前一条命令或脚本执行后的返回状态码,返回值为0表示执行正确,返回任何非0值均表示执行出现异常.也常被用于Shell脚本中return退出函数并返回的退出值.
$!:返回最后一个后台进程的进程号
十一.环境变量
环境变量由系统提前创建,用来设置用户的工作环境
使用 env 命令可以查看到当前工作环境下的环境变量
变量USER表示用户名称,HOME表示用户的宿主目录,LANG表示语言和字符集,PWD表示当前所在的工作目录,
变量PATH表示可执行程序的默认搜索路径
边栏推荐
- 365天挑战LeetCode1000题——Day 046 生成每种字符都是奇数个的字符串 + 两数相加 + 有效的括号
- NFT的10种实际用途(NFT系统开发)
- 软考 ----- UML设计与分析(上)
- JS hoisting: how to break the chain of Promise calls
- Spark shuffle调优
- Scala practice questions + answers
- Spark集群搭建
- [Chinese tree tags - CTB]
- Based on php online learning platform management system acquisition (php graduation design)
- ImportError: `save_weights` requires h5py.问题解决
猜你喜欢
随机推荐
位运算简介
【接口测试】JMeter调用JS文件实现RSA加密
Spark练习题+答案
with语句和上下文管理器
MySQL相关知识
NFT的10种实际用途(NFT系统开发)
对C语言结构体内存对齐的理解
回收租凭系统100%开源无加密 商城+回收+租赁
JSD-2204-Knife4j框架-处理响应结果-Day07
基于php在线学习平台管理系统获取(php毕业设计)
C语言_枚举类型介绍
C Pitfalls and Defects Chapter 7 Portability Defects 7.7 Truncation During Division
关键字搜索:“淘宝商品 API ”
测试的意义并不是能找到全部的缺陷
方舟开服需要知道的那些事
测试开发人均年薪30w+?软件测试工程师如何进阶拿到高薪?
LVS负载均衡群集
基于php在线音乐网站管理系统获取(php毕业设计)
Interview Blitz 70: What are sticky packs and half packs?How to deal with it?
正则表达式