Linux操作系统基础(十五):Shell编程

news2024/11/29 0:48:00

文章目录

Shell编程

一、什么是Shell

1、简介

2、Shell解释器

二、快速入门

1、编写Shell脚本

2、执行Shell脚本


Shell编程

一、什么是Shell

1、简介

Shell 是一个用 C 语言编写的程序, 通过 Shell 用户可以访问操作系统内核服务。

它类似于 DOS 下的 command 和后来的 cmd.exe。 Shell既是一种命令语言,又是一种程序设计语言。

Shell script 是一种为shell编写的脚本程序。 Shell 编程一般指shell 脚本编程,不是指开发shell自身。

2、Shell解释器

Shell编程跟java、php编程一样,只要有一个能编写代码的文本编辑器和一个能解释执行的脚本解释器就可以了。

Linux的Shell解释器种类众多,一个系统可以存在多个 shell,可以通过cat /etc/shells命令查看系统中安装的 shell。

bash 由于易用和免费,在日常工作中被广泛使用。同时, bash 也是大多数Linux 系统默认的 Shell。

总结:java执行需要虚拟机解释器, 同理shell程序执行也需要解析器

二、快速入门

1、编写Shell脚本

使用 vi 编辑器新建一个文件hello.sh(扩展名并不影响脚本执行)

#!/bin/bash
echo "Hello World !"

#! 是一个约定的标记,它告诉系统这个脚本需要什么解释器来执行,即使用哪一种 Shell

echo命令 用于向窗口输出文本。

给shell程序赋予执行权限:

chmod +x ./hello.sh #使脚本具有执行权限

2、执行Shell脚本

执行shell程序:

./hello.sh #执行脚本

 

直接写 hello.sh,linux 系统会去 PATH 里寻找有没有叫hello.sh的。

用 ./hello.sh 告诉系统说,就在当前目录找

还可以作为解释器参数运行。 直接运行解释器,其参数就是 shell 脚本的文件名,如:

sh /root/shelldemo/hello.sh

在使用解释器直接执行shell程序这种方式来运行脚本,不需要考虑脚本程序的执行权限了


  • 📢博客主页:https://lansonli.blog.csdn.net

  • 📢欢迎点赞 👍 收藏 ⭐留言 📝 如有错误敬请指正!

  • 📢本文由 Lansonli 原创,首发于 CSDN博客🙉

  • 📢停下休息的时候不要忘了别人还在奔跑,希望大家抓紧时间学习,全力奔赴更美好的生活✨

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

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

相关文章

【实战】一、Jest 前端自动化测试框架基础入门(二) —— 前端要学的测试课 从Jest入门到TDD BDD双实战(二)

文章目录 一、Jest 前端自动化测试框架基础入门5.Jest 中的匹配器toBe 匹配器toEqual匹配器toBeNull匹配器toBeUndefined匹配器和toBeDefined匹配器toBeTruthy匹配器toBeFalsy匹配器数字相关的匹配器字符串相关的匹配器数组相关的匹配器异常情况的匹配器 6.Jest 命令行工具的使…

【python】object() takes no parameters报错原因

__init__ 你以为写对了,其实错了,因为是左右都是2个下划线。是左边两个!!右边也是两个!!!不是合计2个!!!

30. 异常

异常 1. 概述2. Throwable 方法2.1 概述2.2 代码示例 3. 异常分类4. 异常处理方式4.1 JVM默认处理异常4.2 自己处理(捕获异常)try...catch4.2.1 概述4.2.2 灵魂四问 4.3 抛出处理(throw和throws) 5. 自定义异常5.1 概述5.2 代码示例 6. 异常注意事项 文章…

GPT-4影响高度创新思维的领域(一)

GPT-4的应用范围不再局限于对现有信息的检索、整理和复述,而是进一步拓展到了诸如文学创作、科学假设生成、教育辅导、商业策略建议等需要高度创新思维的领域。这种独立思考和创新能力赋予了GPT-4作为虚拟助手时更加丰富多元的角色定位,使其成为一种强大…

如何在PDF 文件中删除页面?

查看不同的工具以及解释如何在 Windows、Android、macOS 和 iOS 上从 PDF 删除页面的步骤: PDF 是最难处理的文件格式之一。曾经有一段时间,除了阅读之外,无法用 PDF 做任何事情。但是今天,有许多应用程序和工具可以让您用它们做…

寒假思维训练day21

今天更新一道不错的状态压缩DP题,顺带总结一下状态压缩DP。 摘要: Part1 浅谈状态压缩DP的理解 Part2 浅谈对状态机DP的理解 Part3 关于状态压缩DP的1道例题 Part1 状态压缩DP 1、状态压缩DP: 事物的状态可能包含多个特征,…

Zotero插件分享(第二弹)

今天紧接上一篇文章(Zotero常用插件分享),继续分享关于Zotero常用插件的相关内容。(排名不分先后) 1.Translate for Zotero 英文文献阅读辅助工具,可以实现将pdf中选中的文字翻译为指定语言,并…

【学网攻】 第(27)节 -- HSRP(热备份路由器协议)

系列文章目录 目录 系列文章目录 文章目录 前言 一、HSRP(热备份路由器协议)是什么? 二、实验 1.引入 实验目标 实验背景 技术原理 实验步骤 实验设备 实验拓扑图 实验配置 实验验证 文章目录 【学网攻】 第(1)节 -- 认识网络【学网攻】 第(2)节 -- 交…

港口码头航吊远距离相位测距仪|传感器PHR-120100配置使用说明

港口码头航吊远距离相位测距仪|传感器PHR-120100广泛应用于港口码头、航车、位移监测、形变监测、钢铁、堆垛机、龙门吊等领域。 本文重点介绍港口码头航吊远距离相位测距仪|传感器PHR-120100配置使用说明。 一、布局介绍 二、按键介绍 三、指示灯说明 四、显示屏操作说明 …

使用LORA微调RoBERTa

模型微调是指在一个已经训练好的模型的基础上,针对特定任务或者特定数据集进行再次训练以提高性能的过程。微调可以在使其适应特定任务时产生显着的结果。 RoBERTa(Robustly optimized BERT approach)是由Facebook AI提出的一种基于Transfor…

【EAI 020】Diffusion Policy: Visuomotor Policy Learning via Action Diffusion

论文标题:Diffusion Policy: Visuomotor Policy Learning via Action Diffusion 论文作者:Cheng Chi, Siyuan Feng, Yilun Du, Zhenjia Xu, Eric Cousineau, Benjamin Burchfiel, Shuran Song 作者单位:Columbia University, Toyota Research…

C#中implicit和explicit

理解: 使用等号代替构造函数调用的效果以类似重载操作符的形式定义用于类型转换的函数前者类型转换时候直接写等号赋值语法,后者要额外加目标类型的强制转换stirng str -> object o -> int a 可以 int a (int)(str as object)转换通过编译,但没有转换逻辑所以运行会报错…

HCIA-HarmonyOS设备开发认证V2.0-轻量系统内核基础-事件event

目录 一、事件基本概念二、事件运行机制三、事件开发流程四、事件使用说明五、事件接口坚持就有收获 一、事件基本概念 事件是一种实现任务间通信的机制,可用于实现任务间的同步,但事件通信只能是事件类型的通信,无数据传输。一个任务可以等…

LeetCode、452. 用最少数量的箭引爆气球【中等,贪心,区间问题】

文章目录 前言LeetCode、452. 用最少数量的箭引爆气球【中等,贪心,区间问题】题目链接与分类思路贪心,连续区间数量问题 资料获取 前言 博主介绍:✌目前全网粉丝2W,csdn博客专家、Java领域优质创作者,博客…

带你掌握getchar与putchar的基本用法

个人主页(找往期文章包括但不限于本期文章中不懂的知识点):我要学编程(ಥ_ಥ)-CSDN博客 目录 getcahr putchar getchar 与 putchar 的配合使用 getchar相较于scanf的优缺点 putchar相较于printf的优缺点 getcahr 函数原型&#xff1a…

【教程】MySQL数据库学习笔记(二)——数据类型(持续更新)

写在前面: 如果文章对你有帮助,记得点赞关注加收藏一波,利于以后需要的时候复习,多谢支持! 【MySQL数据库学习】系列文章 第一章 《认识与环境搭建》 第二章 《数据类型》 文章目录 【MySQL数据库学习】系列文章一、整…

DFM-无监督图像匹配

DFM:A Performance Baseline for Deep Feature Matching(深度特征匹配的性能基准) 2021.06.14 摘要 提出了一种新的图像匹配方法,利用现成的深度神经网络提取的学习特征来获得良好的图像匹配效果。该方法使用预训练的VGG结构作为…

starknet之 class_hash

文章目录 问题背景什么是Class Hash问题背景 部署合约报错:ReferenceError: Buffer is not defined 什么是Class Hash 官方: https://book.starknet.io/ch04-03-01-deploy-standard-account.html?highlight=class%20hash#finding-the-class-hash 要部署智能合约,您需要在…

【原创 附源码】Flutter集成Apple支付详细流程(附源码)

最近有时间,特意整理了一下之前使用过的Flutter平台的海外支付,附源码及demo可供参考 这篇文章只记录Apple支付的详细流程,其他相关Flutter文章链接如下: 【原创 附源码】Flutter集成谷歌支付详细流程(附源码) 【原创 附源码】F…

PR:熟悉PR工作环境

新建项目 设置自己的页面布局 首选项