Shell编程规范和变量

一.Shell脚本概述

Shell脚本的概念
  • 将要执行的命令按顺序保存到一个文本文件
  • 给该文件可执行权限
  • 可结合各种Shell控制语句以完成更复杂的操作
Shell脚本应用场景
  • 重复性操作
  • 交互性任务
  • 批量事务处理
  • 服务运行状态监控
  • 定时任务执行
Shell的作用

1)介于系统内核与用户之间,负责解释命令行

2)用户的登陆Shell

  • 登陆后默认使用的Shell程序,一般默认为 /bin/bash
  • 不同Shell的内部指令、运行环境等会有所区别

Linux中常用Shell:

sh:UNIX最初使用的 shell,已经被bash所替换
bash:基准于GNU的框架下发展出的Shell,是 sh 的扩展
csh:语法有点类似于c语言的Shell
tcsh:整合了csh,提供更多的功能
nologin:奇怪的shell,这个shell可以让用户无法登录主机

注:bash(/bin/bash)是目前大多数 Linux 版本采用的默认 Shell

编写第一个Shell脚本

Shell脚本的构成:

  • 脚本申明(解释器):若第一行为“#!/bin/bash”,表示此行以下的代码语句是通过/bin/bash程序来解释执行,#!/bin/bash为默认解释器。还有其它类型的解释器,比如#!/usr/bin/python、#!/usr/bin/expect。
  • 注释信息:以“#”开头的语句表示为注释信息,被注释的语句在运行脚本时不会被执行。
  • 可执行语句:比如echo命令,用于输出" "之间的字符串
vim first.sh   进入配置文件
#!/bin/bash
#注释信息
可执行命令
chmod +x first.sh  赋予权限

重定向与管道操作

交互式硬件设备

  • 标准输入:从该设备接收用户输入的数据
  • 标准输出:通过该设备向用户输出的数据
  • 标准错误:通过该设备报告执行出错信息
类型设备文件文件描述编号默认设备
标准输入/dev/stdin0键盘
标准输出/dev/stduot1显示器
标准错误输出/dev/stderr2显示器

重定向操作

管道操作符号 “|”
  • 将左侧命令的输出结果,作为右侧命令的处理对象

二.Shell变量的作用类型

变量的作用
  • 用来存放系统和用户需要使用的特定参数(值)
  • 变量名:使用固定的名称,由系统预设或用户定义
  • 变量值:能够根据用户设置、系统环境的变化而变化
变量的类型
  • 自定义变量:由用户自已定义、修改和使用
  • 特殊变量:环境变量,只读变量,位置变量,预定义变量
1)自定义变量

定义一个新变量

  • 变量名以字母或下划线开头,区分大小写,建议全大写

查看变量的值

2)赋值时使用引号
  • 双引号:允许通过$符号引用其他变量的值

  • 单引号: 禁止引用其他变量值,会把$等特殊符号是为普通字符去使用
  • 反撇号:命令替换,提取命令执行后的输出结果

从键盘输入内容为变量赋值

3)设置变量的作用范围
格式1 :export  变量名
格式2 :export  变量名=变量值

该方式为临时设置。

永久设置方法为:

vim /etc/bashrc

4)整数变量的运算

常用运算符

加法运算:+
减法运算:-
乘法运算:\*
除法运算:/
求模(取余)运算:%

三.特殊的Shell变量

环境变量
  • 由系统提前创建,用来设置用户的工作环境
  • 配置文件: /etc/profile 、~/.bash_profile

常见的环境变量

只读变量
  • 用于变量值不允许被修改的情况

位置变量

预定义变量

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://xiahunao.cn/news/3017821.html

如若内容造成侵权/违法违规/事实不符,请联系瞎胡闹网进行投诉反馈,一经查实,立即删除!

相关文章

使用图网络和视频嵌入预测物理场

文章目录 一、说明二、为什么要预测?三、流体动力学模拟的可视化四、DeepMind神经网络建模五、图形编码六、图形处理器七、图形解码器八、具有不同弹簧常数的轨迹可视化九、预测的物理编码和推出轨迹 一、说明 这是一篇国外流体力学专家在可视化流体物理属性的设计…

Apache SeaTunnel 正式发布2.3.5版本,功能增强及多个Bug修复

经过两个月的筹备,我们在2.3.4版本基础上进行了新一轮的迭代,本次更新不仅修复了多个关键问题,还引入了若干重要功能增强和性能优化。 在此,我们先提前感谢社区成员的贡献和支持,如果你想升级最新的版本,快…

Grotesque系列靶机Grotesque1

第一步信息收集: 靶机ip:192.168.108.131 攻击机IP:192.168.108.128 nmap扫描靶机的可用端口: 发现http服务的端口存在66端口和80端口 扫描一下靶机端口的http服务: 可以看到,默认的80端口是不存在的&am…

某制造公司屋顶分布式光伏发电案例分享--分布式光伏电力监控系统解决方案

安科瑞薛瑶瑶18701709087/17343930412 ★分布式光伏监控系统 分布式光伏监控电力系统遵循安全可靠、经济合理原则,满足电力系统自动化总体规划要求,且充分考虑光伏发电的因素,对分布式光伏发电、用电进行集中监控、统一调度、统一运维、满足…

人工神经网络初步

大家好,这里是七七,由于各种比赛的缘故,使用了很多人工神经网络模型。但是很多的原理都不是很明白,就导致了不能灵活地运用┭┮﹏┭┮。为此,去看了些人工神经网络原理书,写下此专题。 在进入正文之前要先…

六西格玛项目的核心要素:理论学习、实践应用与项目经验

许多朋友担心,没有项目经验是否就意味着无法考取六西格玛证书。针对这一疑问,张驰咨询为大家详细解答。 首先,需要明确的是,六西格玛项目不仅仅是一种管理工具或方法,更是一种追求卓越、持续改进的思维方式。它强调通…

Pycharm导入自定义模块报红

文章目录 Pycharm导入自定义模块报红1.问题描述2.解决办法 Pycharm导入自定义模块报红 1.问题描述 Pycharm 导入自定义模块报红,出现红色下划线。 2.解决办法 打开【File】->【Setting】->【Build,Execution,Deployment】->【Console】->【Python Con…

【机器学习】自然语言引导下的单目深度估计:泛化能力与鲁棒性的新挑战

自然语言引导下的单目深度估计:泛化能力与鲁棒性的新挑战 一、自然语言引导下的单目深度估计进展二、泛化能力与鲁棒性的挑战三、评估方法与实验验证四、代码实例与未来展望 在人工智能领域,单目深度估计一直是一个备受关注的热点问题。通过单张图片推断…

优立科技:从数字孪生到元宇宙

2021年10月,Facebook致力于发展元宇宙,并更名为Meta。加上此前Roblox上市的消息,让「元宇宙」一词迅速在2021年爆火,刺激了VR、游戏等相关产业的发展,甚至有人宣称2021年为「元宇宙『元年』」。然而,「元年…

c#教程——索引器

前言: 索引器(Indexer)可以像操作数组一样来访问对象的元素。它允许你使用索引来访问对象中的元素,就像使用数组索引一样。在C#中,索引器的定义方式类似于属性,但具有类似数组的访问方式。 索引器&#x…

mysql 离线安装

package download mysql https://dev.mysql.com/downloads/mysql/ libaio http://mirror.centos.org/centos/7/os/x86_64/Packages/libaio-0.3.109-13.el7.x86_64.rpm 根据自己服务器选择下载对应的安装包及依赖 删除本机自带mysql相关 # 首先排查服务器自身是否有安装对应m…

Promise魔鬼面试题

文章目录 题目解析难点分析分析输出step1step2step3step4step5step6 参考/致谢:渡一袁老师 题目 Promise.resolve().then(() > {console.log(0);return Promise.resolve(4);}).then((res) > {console.log(res);});Promise.resolve().then(() > {console.l…

【BUUCTF】Crypto_RSA(铜锁/openssl使用系列)

【BUUCTF】Crypto_RSA(铜锁/openssl使用系列) 1、题目 在一次RSA密钥对生成中,假设p473398607161,q4511491,e17 求解出d作为flga提交 2、解析 RSA加密过程: 1)选择素数:选择两个不…

【管理咨询宝藏93】大型制造集团数字化转型设计方案

【管理咨询宝藏93】大型制造集团数字化转型设计方案 【格式】PDF版本 【关键词】国际咨询公司、制造型企业转型、数字化转型 【核心观点】 - 235页大型制造型集团数字化转型方案设计!细节非常详尽,图表丰富! - 系统架构必须采用成熟、具有国…

docker资源限额

多数的应⽤场景要对Docker容器的运⾏内存进⾏限制,防⽌其使⽤过多的内存。 格式:-m或--memory 正常的内存大小 [rootadmin ~]# docker ps -a CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS …

SpringBoot过滤器简单构建详细教程以及与拦截器区别解释

作用范围:过滤器基于Servlet规范,作用于更广泛的层面,不仅限于Spring MVC,它可以拦截进入Web应用的所有请求,包括静态资源请求。过滤器可以对请求和响应的内容进行预处理和后处理。实现方式:过滤器需要实现…

Java初识继承

继承 文章目录 继承为什么需要继承继承中变量的访问特点继承中方法的访问特点继承的优缺点 概念:在Java中,继承是面向对象编程的一个基本特性。它允许我们定义一个新类,它从另一个已经存在的类继承其属性和方法。被继承的类称为父类或超类,新…

牛客NC142 最长重复子串【中等 字符串 Java/Go】

题目 题目链接: https://www.nowcoder.com/practice/4fe306a84f084c249e4afad5edf889cc 思路 注意:题目给的时间复杂度是O(N^2)那么直接套用双重循环:外层循环i为假定起始重复子串的初始位置,内层循环的j为假定重复子串的结束位置…

Mac 链接 HP 136w 打印机步骤

打开 WI-FI 【1】打开打印机左下角Wi-Fi网络设计【或者点击…按钮进入WI-FI菜单】,找到NetWork选项OK进入; 【2】设置WI-FI选项:在菜单内找到Wi-Fi选项OK进入; 【3】在菜单内找到Wi-Fi Direct选项OK进入; 【4】在菜单…

(论文阅读-分析引擎)Modin

一、简介 目标是在不改变的Dataframe语义的情况下支持可扩展的dataframe操作。 什么是机会主义评价?Opportunistic Evaluation? Exploratory data analysis(EDA):总结、理解并从数据集中获取价值的过程。 MPI&#…