简单shell

自己动手写一个简单的Shell之一:了解Shell         在前面的学习中,我们认识了Linux下的一些命令,能够使用命令在Linux下完成任务。我们输入命令,操作系统执行命令并输出结果。通过命令,我们控制计算机完成一件又一件任务。那么Linux是如何解析命令、执行命令并返回结果的呢?接下来我们将学习相关知识并会接触到一个如雷贯耳的名字——Shell。什么是Shell         在解释什么是Shell之前,我们先来 阅读详情
执行脚本结果重定向
sh hah.sh hello 1>>/home/qiso/job.log 2>&1

上面这句话的意思是
首先通过sh执行脚本hah.sh,其中执行这个脚本的时候,需要传入参数,参数是hello,
1表示的是标准输出,以上脚本执行完毕之后,首先执行2>1这个意思是说将标准错误重定向到标准输出,0,1,2分别表示标准输入,标准输出和标准错误,进过执行2>1这个意思是说将标准错误重定向到标准输出,0,1,2分别表示标准输入,标准输出和标准错误,进过执行2>1之后,此时标准错误输出的结果重定向到了标准输出中,然后执行1>>/home/qiso/job.lob,结果就是把标准输出里面的值,写入到了那个文件中去了,上面整体的思路就是,首先执行脚本,将执行脚本过程中和标准错误重定向到标准输出中,然后将标准输出中的结果写入到指定文件中去

上面理解不正确,上面的意思是,我们正常的是把标准输出的结果存在了文件中,如果有标准错误的话,也会把标准错误的结果先重定向到标准输入中,然后在写入到文件中

变量

定义变量
变量名=”变量值”

shell 文件包含

在使用c语言的时候,我们经常使用文件包含的形式,去调用其他文件的函数
在shell中,我们也可以包含其他的文件,这样子可以调用其他的函数
在shell中,使用的方式就是

. hah.sh

或者是

source hah.sh
shell函数

shell函数可以加上return进行返回,也可以不用加上return进行返回,这个时候就是以最后一个命令的运行结果作为返回值

函数内部变量

shell脚本中定义的变量都是全局的,有的时候我们只需要函数内部的一些变量
这个时候使用的就是local,可以使用local在函数内部定义一个局部变量

function hello() {
    local haha="hahahahahahha";
}
简单shell的编写 shell执行过程: 1.读取用户从键盘输入的命令(调用read函数); 2.分析命令,以命令名为文件名,并将其他参数改造为系统调用execvp()参数处理所要求的格式; 3.终端进程(shell)调用fork()或者vfork()建立一个子进程(个人建议采用fork()); fork()与vfock()都是创建一个进程,那他们有什么区别呢?总结有以下三点区别: 1. fork ():子进程拷贝父进程的数据段,代码段 (共享代码,数据私有) vfork ( ):子进程与父进程共享数据段 2. 阅读详情

相关推荐

最简单shell脚本编程例子

这是本人最近学习linux系统的自己写的一些小例子 很简单很适合新手来看 这里面是一些shell脚本最基础的用法 大约有20来个小的脚本

一篇文章教会你如何编写一个简单的Shell脚本

Shell 脚本是一种用于自动化执行一系列命令和操作的脚本文件。它使用的是 Shell 解释器(如 Bash、Korn Shell、Zsh 等)来解释和执行其中的命令。Shell 脚本通常用于编写简单的任务和工作流程,可以帮助我们进行系统管理、批量处理、自动化部署等任务。

来日可期的博客 1万+

大模型驱动时序量化因子自动优化:从WorldQuant回测到实战策略

本文探讨了如何利用大模型驱动时序量化因子的自动优化,构建从创意生成到实战验证的完整流程。通过结合WorldQuant回测平台,搭建自动化流水线,详细拆解了因子生成、回测验证与迭代优化的核心模块。文章分享了从初版实现到进阶优化的实践经验,并指出提示词工程与领域知识注入是关键,旨在实现人机智能协作,提升量化策略研发效率。

wdx012345的博客 803

【Linux】教你实现一个简单的、属于自己的Shell

我们在Linux中使用的shell, 一般有两个 bash 和 zsh. 我们可以通过shell, 执行各种命令. 而本篇文章的主要内容, 就是实现一个简易的shell

七月.cc的博客 7287

Bellhop水声信道模型的仿真

Bellhop是一种基于射线追踪的水声信道模型,广泛用于预测水下环境中的声压场。它通过模拟声波在水中的传播路径,计算声场分布,适用于复杂的水下通信场景。

yt94832的博客 1315

基于stm32f407VGT6控制WS2812的TIM1+PWM+DMA实现方式

项目中使用到了ws2812灯带,作为产品的外观显示灯,经过开发之后,整理一下,仅供大家参考。 WS2812B是一个集控制电路与发光电路于一体的智能外控LED光源。 其外型与一个5050 LED灯珠相同, 每个元件即为一个像素点。 像素点内部包含了智能数字接口数据锁存信号整形放大驱动电路, 还包含有高精度的内部振荡器和可编程定电流控制部分, 有效保证了像素点光的颜色高度一致。数据协议采用单线归零码的通讯方式, 像素点在上电复位以后, DIN端接受从控制器传输过来的数据, 首先送过来的24bit数据被第一个像素

weixin_43608153的博客 9214

shell简易版编写

cd:更改路径可以使用chdir,修改完路径环境变量PWD也需要跟着修改,不过不能直接拿输入的路劲来修改,PWD需要绝对路径,cd会有一些特殊的符号来表示一些路劲(~:家目录;echo $[环境变量]也是子进程查看的是自己的环境变量,不是父进程的,父进程的内建命令在使用时会改变一些环境变量需要自己维护。只需要将lastcode设为全局变量,就可以拿到上一次的退出信息,需要注意在用户的角度echo也是在执行文件,所以需要将lastcode值改为0,视作echo的退出信息。要在获取路劲后修改,找最后一个目录。

2301_77529683的博客 1469

ROS2节点通信实战:用C++手写一个‘智能小车’控制模型(附完整代码)

本文详细介绍了如何使用ROS2和C++构建一个智能小车控制模型,涵盖运动控制节点、电池管理服务、参数动态配置和Rviz可视化等核心功能。通过实战项目演示ROS2节点通信机制,帮助开发者快速掌握机器人开发的关键技术,并提供了完整的代码实现和系统集成方案。

weixin_30607029的博客 261

shell简单入门脚本

一、编写两个简单的shell脚本 (shell脚本需要以.sh扩展名) [root@shellhost ~]# cd /scripts/day1/ [root@shellhost day1]# vim test1.sh vim test2.sh 二、执行脚本 方法一: bash test1.sh 或者 sh test1.sh 方法二: 给脚本添加执行权限:chmod +x test1.sh再如下执行脚本 ./test1.sh 方法三: source t...

spring℡ 1374

VAY 是 SAP 自动科目确定(OBYC-GBB)中的科目修改码,专用于带科目分配对象的销售订单发货场景,核心是触发 “Dr 成本要素科目(如销售费用 / 特定成本对象) Cr 库存商品” 的分录,

摘要:VAY是SAP中用于带科目分配对象(如成本中心、WBS)的销售订单发货的科目修改码,与标准VAX场景不同,它生成"借成本要素科目/贷库存商品"的分录。配置路径为OBYC-GBB-VAY,需确保借方科目为成本要素。典型业务场景包括免费样品、项目专用发货等。常见问题包括VAY未触发或科目记账错误,需检查销售订单科目分配、移动类型设置及OBYC配置。特殊场景建议单独配置科目以便费用分析。

金牌架构师 1254

解决Gradle中NPM命令失效问题

摘要:本文分析了IntelliJ IDEA中Gradle执行npm命令失败的问题,报错显示"npm"文件不存在。通过确认npm安装路径、检查系统PATH与Gradle环境的差异,提出两种解决方案:1) 在build.gradle中使用npm绝对路径;2) 通过launchctl修改用户PATH。实例展示了如何修改Gradle脚本或系统配置来解决该问题,指出跨平台开发中环境变量配置的重要性。文章为开发者提供了处理类似问题的实用方法。

2501_90323865的博客 90

shell脚本竟如此简单【shell脚本基础】

学习shell脚本基础编程

Parzaifal的博客 1236

mapbox进阶,dem数据转为等高面,加载转换后的等高面到地图

本文详细介绍如何基于mapbox-gl v3.*.* 版本,使用dem数据转为等高面,加载转换后的等高面到地图,亲测可用。希望能帮助到您。一起学习,加油!加油!

我哎GIS博客 407

什么是shell以及如何编写最简单的shell

什么是shell以及如何编写最简单的shell此篇文章仅作为个人的学习笔记什么是shellshell是一种linux可以直接识别并执行的程序设计语言shell分类 sh(全称 Bourne Shell): 是UNIX最初使用的 shell,而且在每种 UNIX 上都可以使用。 Bourne Shell 在 shell 编程方面相当优秀,但在处理与用户的交互方面做得不如其他几种 shell。 bash

雨小米 8634

顶级AI大模型白嫖ChatGPT Plus1个月,0成本薅顶配功能

Chat*** Plus限时免费1个月!原价20美元/月的顶配功能

BUG猿的博客 7279

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

SHELL简单了解

shell执行命令过程、shell的基本功能

kuangfeng的博客 189

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

Linux - 实现一个简单的 shell

所以,当系统运行起来的时候,或者说我们进行登录的时候,系统就是要运行一个 shell 程序。比如在 Linux 当中就是 bash 命令行解释器。而 ,我们知道 各个进程的 环境变量是来自于 bash 父进程的,那么 bash 的环境变量从那里来呢?其实在 自己用户,当前的工作目录下,有一写配置文件,如 Linux 当中这个文件当中:所以,当用户登录的时候,shell 会读取当前用户目录下的 .bash_profile 这个配置文件在个文件当中存储了环境变量导入到方式。

chihiro1122的博客 1319

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

自己编写的简单shell

shell原理: Linux系统提供给用户的最重要的系统程序是Shell命令语言解释程序。它不属于内核部分,而是在核心之外,以用户态方式运行。其基本功能是解释并执行用户打入的各种命令,实现用户与Linux核心的接口。系统初启后,核心为每个终端用户建立一个进程去执行Shell解释程序。它的执行过程基本上按如下步骤:  (1)读取用户由键盘输入的命令行。  (2)分析命令,以命令名作为文

Dakuan_chen的博客 2993

简单的 shell 程序

在编写一个简单的 shell 程序时,我们需要一些全局变量来存储和管理不同类型的数据。// 命令行参数表// 环境变量表// 别名映射表// 最后一次命令的退出码:这是一个宏定义,用来规定用户输入命令行的最大长度。在读取用户输入时,我们可以使用这个值来确保不会超出缓冲区的范围,避免缓冲区溢出问题。FORMAT:同样是宏定义,它规定了命令行提示符的格式。%s是格式化字符串中的占位符,分别用于插入用户名、主机名和当前工作目录。MAXARGC:定义了命令行参数的最大数量。g_argv。

LJY_CF的博客 1107

Bash Shell简单介绍

Bash(Bourne Again SHell)是一种常见的Unix和Linux操作系统中使用的命令行解释器。它是基于Bourne shell(或称为sh)的扩展和改进版本。Shell在等待用户输入时会显示一个字符串,称为shell提示符。普通用户启用shell时。提示符包含一个结尾为 $ 的字符,超级用户则是 # 字符。Bash Shell提供了脚本语言,可支持自动化任务。Shell还提供了实现利用图形化工具难以规模化完成的操作。Bash提供了许多增强的功能,使得在命令行下工作更加方便和高效。

weixin_62890406的博客 874

Linux——简单的Shell程序

分享简单的Shell小程序

2301_78995005的博客 1017

简单shell脚本的编写

必须保证两边都为真,条件才会成立,有一边为假条件都不会成立。要求普通用户输出user,管理员用户输出superuser。$RANDOM是linux中的内置变量,可以随机生成。|| 两边有一个为真就为真,两边都为真也为真。没有给这个脚本赋予可执行权限就用。一条命令完成上述命令。批量ping IP地址。

过期的秋刀鱼 2822

SHELL 的一些简单的用法

SHELL 的定义:如果你有一系列经常使用的Linux命令,你可以把他们存储在一个文件中。Shell可以读取这个文件并执行其中的命令。这样的文件被称为脚本文件。 SHELL 的结构:shell 类型 文件格式:abc.sh 函数 主过程 一般模板 #!/bin/bash shell类型 #a simple shell scr

NF0102的博客 912

【linux】简单的shell脚本练习

简单易学解释性语言,不需要编译即可执行对于一个合格的系统管理员来说,学习和掌握Shell编程是非常重要的,通过shell程序,可以在很大程度上简化日常的维护工作,使得管理员从简单的重复劳动中解脱出来用户输入任意两个整数的加减乘除取。

2301_78044462的博客 1323

编写简单的Shell脚本

详情: 快速入门Shell编程(二)编写简单的Shell脚本_小林coding-优快云博客_编写一个简单的shell脚本

weixin_43960678的博客 308

linux shell脚本 简单学习

linux shell脚本 简单学习 一些需要知道的概念 SHELL种类 kernel与shell是两个不一样的东西。 SH: ​ Bourne shell(sh),solaris,hpux默认shell ​ Bourne again shell (bash),Linux 默认shell Linux中查看shell: echo $SHELL /bin/bash shell环境 1....

爱党人士 264
上一篇: awk基础
下一篇: 简单protobuf
NeilZhy
博客等级 码龄11年 175粉丝 145原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值