Shell脚本编程入门--Day1

news2024/11/15 19:41:39

文章目录

    • 什么是shell?
    • 变量
    • 环境变量的设置和显示
    • 特殊变量
    • 特殊的状态变量

什么是shell?

从技术角度,Shell的最简单定义:命令行解释器(command Interpreter)主要包含:
1, 将使用者的命令翻译给核心(kernel)处理。
2, 同时,将核心的处理结果翻译给使用者

什么是bash呢? shell的一种。

输出打印hello

#! /bin/bash 固定格式, 指定解释器为bash
‘#’ 是注释符

[chen@iZ0jl780lb0oio7v4b0chbZ shell_test]$ cat hello.sh
#! /bin/bash

# 这是第一个shell脚本编程
echo "hello shell"

运行的时候会发现没有权限, 解决方案:
1, 添加可执行权限 chmod u+x hello,sh
2, /usr/bin/bash hello.sh 指定解释器去运行

或者: 直接这样去执行
source hello.sh
. hello.sh
bash hello. sh
bash < hello.sh
他们的区别 : bash/sh会创建一个新的子进程去执行, 而 source 和 点 会在当前进程去执行。

shell脚本语言本质是一种弱语言。 定义变量的时候,不需要提前指定类型
C/C++是强语言, 使用的时候必须给定类型。

查看shell解释器

[chen@iZ0jl780lb0oio7v4b0chbZ shell_test]$ cat /etc/shells
/bin/sh
/bin/bash
/usr/bin/sh
/usr/bin/bash

变量

重提核心终点:bash/sh会创建一个新的子进程去执行命令或者脚本,而source/点会在当前进程
如果说用bash/sh去执行,一般不会保留变量!!!

变量的生命周期都是随shell进程的

直接输出指令 name=“zhangsan” 不能有空格
echo $name 输出变量


变量的作用域:本地变量只针对于当前shell进程,意味着无论是父进程还是子进程,都是看不到的

铺贴: 介绍pstree指令, 显示进程树

在这里插入图片描述

环境变量, PATH称为全局变量,当前shell进程和以后的任意子进程

查看环境变量 ehco $PATH

特殊变量:$?

值为0——255 返回上一个进程执行的退出码, 0是成功

单引号和双引号变量的区别

单引号不识别特殊语法, 双引号识别特殊语法


反引号的作用(在键盘的esc下面):会把执行结果给替换

[chen@iZ0jl780lb0oio7v4b0chbZ shell_test]$ name=`ls`
[chen@iZ0jl780lb0oio7v4b0chbZ shell_test]$ echo $name
hello.sh test.sh

shell变量的面试题(白嫖的b站免费课程,所以就懒得换了, 哈哈~~)
在这里插入图片描述
结果 : C, 解析 :sh/bash会创建新的子进程去执行,而变量的作用域在当前进程。

环境变量的设置和显示

set,可显示当前shell进程的全局变量和局部变量(包括shell脚本定义的变量)
env,只显示全局变量
declare, 和set一样
export,设置和显示环境变量
readonly 设置只读变量

unset,删除变量或函数

如何过滤出所有的环境变量名呢

export 显示所有的环境变量
通过awk命令

# -F 文本显示   '[ :=]’ 指定分隔符为空格和等号   '{}print $3}' 输出分割后的第三个内容
export | awk -F '[ :=]' '{print $3}'

特殊变量

参数传递
例如
ls -a -l # 参数-a -l传递给了ls

$0 输出脚本文件
$1 第一个参数
$n 第n个参数
$# 获取参数个数
$* 获取所有的参数
$@ 获取所有的参数

[chen@iZ0jl780lb0oio7v4b0chbZ shell_test]$ cat test.sh
echo $0  # 输出脚本文件名 
echo $1  # 输出第一个参数
echo $2  # 输出第二个参数

echo $#  # 输出参数个数

echo $*  # 输出所有参数
echo $@  #输出所有参数
[chen@iZ0jl780lb0oio7v4b0chbZ shell_test]$ bash test.sh chen lang da shuai bi
test.sh
chen
lang
5
chen lang da shuai bi
chen lang da shuai bi

面试题 : >$* 和 $@的区别

都是输出所有的参数
如果两者都是在引号的包围下, ∗ 会将整体当成一份, *会将整体当成一份, 会将整体当成一份,@会当成各自独立的一份
用for循环打印测试

[chen@iZ0jl780lb0oio7v4b0chbZ shell_test]$ cat test1.sh


for i in "$*"
do
    echo "$i"
done

echo "----------------------------------------" 

for i in "$@"
do
   echo "$i"
done

[chen@iZ0jl780lb0oio7v4b0chbZ shell_test]$ bash test1.sh chen lang da shuai bi
chen lang da shuai bi
----------------------------------------
chen
lang
da
shuai
bi

特殊的状态变量

$? 上一次命令执行状态的返回值
$$ 当前shell脚本pid
$! 上一次后台进程的pid (nohup)
$_ 上次命令的最后一个参数

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

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

相关文章

COS 压测指南

COSBench 简介 COSBench 是一款由 Intel 开源&#xff0c;用于对象存储的压测工具。腾讯云对象存储&#xff08;Cloud Object Storage&#xff0c;COS&#xff09;作为兼容 S3 协议的对象存储系统&#xff0c;可使用该工具进行读写性能压测。 系统环境 工具推荐运行在 CentO…

PyCharm 下载安装教程(中文语言包)

文章目录 下载安装简单创建项目中文语言包 Py Charm是由JetBrains打造的一款Python IDE&#xff08;Integrated Development Environment&#xff0c;集成开发环境&#xff09; 下载 点击链接进入官网&#xff1a;https://www.jetbrains.com/pycharm/download/#sectionwindows …

PM864AK01-eA一极用于直流电压电平,地面是用于海底/地下电缆的永久返回路径

​ PM864AK01-eA一极用于直流电压电平&#xff0c;地面是用于海底/地下电缆的永久返回路径 高压直流输电 电力以交流电的形式产生和传输&#xff0c;但对于长距离传输&#xff0c;会产生很大的损耗&#xff0c;或者在两个交流系统无法同步的情况下。所以我们可以用直流输电的方…

【Java EE】-HTTP请求构造以及HTTPS的加密流程

作者&#xff1a;学Java的冬瓜 博客主页&#xff1a;☀冬瓜的主页&#x1f319; 专栏&#xff1a;【JavaEE】 分享: 在满园弥漫的沉静的光芒之前&#xff0c;一个人更容易看到时间&#xff0c;并看到自己的身影。——史铁生《我与地坛》 主要内容&#xff1a;构造http请求&…

大数据Doris(十一):Aggregate 数据模型

文章目录 Aggregate 数据模型 一、导入数据聚合 二、保留明细数据

16 opencv 图像开和闭运算

文章目录 形态学处理操作函数核操作 综合案例 形态学处理 处理类型操作作用开运算先腐蚀再膨胀可在纤细点出分离物体。有助于消除噪音闭运算先膨胀后腐蚀用于排除前景对象中的小孔或对象上的小黑点形态学梯度膨胀图与腐蚀图之差用于保留目标物体的边缘轮廓顶帽原图与开运算图之…

AIgo C++ 面向ai算法的c++

https://github.com/shouxieai/algorithm-cpp http://aipj.aijdjy.com/course/13/task/266/show# https://www.yuque.com/books/share/0729cafa-4751-40e5-9f5d-bb617c0e9708?# 《C》 &#x1f4bb; AI算法视角下的c 视频问手写ai vx: shouxie_ai [共11节课&#xff0c;每节课…

企业微信第三方应用发邮件流程及java代码

具体思路&#xff1a; 1、申请企业微信。 2、在企业微信创建一个邮箱。 3、自建第三方应用。 4、从第三方应用&#xff0c;获取“Secret”值。 5、在第三方应用中&#xff0c;建立企业可信IP。 6、获取企业corpid。 7、写java代码&#xff0c;获取access_token。 参考&a…

华为开源自研AI框架昇思MindSpore应用案例:ResNet50迁移学习

目录 一、环境准备1.进入ModelArts官网2.使用CodeLab体验Notebook实例 AI融合计算的蓬勃发展&#xff0c;对框架能力提出了新的需求和挑战。问题场景和模型设计逐渐复杂化&#xff0c;使得业务数据的维度和计算逻辑的嵌套深度也相应增长。结合向量化优化手段可以有效优化性能瓶…

Delving into Localization Errors for Monocular 3D Object Detection 论文学习

论文地址&#xff1a;Delving into Localization Errors for Monocular 3D Object Detection Github地址&#xff1a;Delving into Localization Errors for Monocular 3D Object Detection 1. 解决了什么问题&#xff1f; 从单目图像准确地估计 3D 框是自动驾驶领域的重要功…

图像去模糊中的均值滤波、高斯滤波、双边滤波简单介绍及代码演示

文章目录 图像去模糊中的均值滤波、高斯滤波和双边滤波简单介绍均值滤波高斯滤波双边滤波总结 图像去模糊中的均值滤波、高斯滤波和双边滤波简单介绍 图像模糊是指图像中的细节和边缘被平滑和模糊化&#xff0c;通常是由于图像采集设备或者图像传输过程中的噪声和抖动引起的。…

SQL 执行顺序

数据的关联过程 from&join&where group by having&where select order by limit 这是一条标准的查询语句: 这是我们实际上SQL执行顺序&#xff1a; 我们先执行from,join来确定表之间的连接关系&#xff0c;得到初步的数据 where对数据进行普通的初步的筛选 …

低代码开发重要工具:jvs列表页中如何实现左树右表的配置

左树右表是一种数据查询展示方式&#xff0c;通常用于处理带有层级关系的查询条件的数据展示。它的基本思想是将一个大表分成左树和右表&#xff0c;左树是一个树形结构&#xff0c;右表是一个扁平的表。通过在左树上建立索引&#xff0c;可以大大提高查询效率。 左树右表的实…

C/C++每日一练(20230504)

目录 1. 将数据流变为多个不相交区间 &#x1f31f;&#x1f31f;&#x1f31f; 2. 冒泡法排序大小 &#x1f31f; 3. Pow(x, n) &#x1f31f;&#x1f31f; &#x1f31f; 每日一练刷题专栏 &#x1f31f; Golang每日一练 专栏 Python每日一练 专栏 C/C每日一练 专…

使用机器人为无线传感器网络提供服务(Matlab代码实现)

目录 &#x1f4a5;1 概述 &#x1f4da;2 运行结果 &#x1f389;3 参考文献 &#x1f468;‍&#x1f4bb;4 Matlab代码 &#x1f4a5;1 概述 无线传感器网络是一种无线网络&#xff0c;包括大量循环的、自定向的、微小的、低功耗的设备&#xff0c;称为传感器节点&…

MySQL存储引擎对比总结

文章目录 一、存储引擎是什么二、存储引擎有哪些三、常用存储引擎介绍1、InnoDB2、MyISAM3、MEMORY4、MRG_MYISAM &#xff08;MERGE&#xff09;5、ARCHIVE6、BLACKHOLE7、FEDERATED8、CSV9、PERFORMANCE_SCHEMA10、NDB 一、存储引擎是什么 存储引擎是数据库的核心&#xff0…

微信小程序实现订阅消息功能(Node服务器篇)

在上一篇内容当中在微信小程序中实现订阅消息功能&#xff0c;都在客户端(小程序)中来实现的&#xff0c;在客户端中模拟了服务器端来进行发送订阅消息的功能&#xff0c;那么本篇就将上一篇内容中仅在客户端中实现发送订阅消息功能进行一个分离&#xff0c;使用 Node.js 搭载后…

吧佬联手抵制奸商,百元级游戏电脑横出江湖

最近小忆闲得在电商平台搜索了下关键词「游戏主机」&#xff0c;不出意外销量榜前列清一色全是「i9 级高端游戏主机」。 这些主机不论配置单介绍还是十万百万级销量宣传标语&#xff0c;都给人一种血赚不亏的「豪华」感。 咱就说时代在变&#xff0c;唯一不变的是奸商们的套路与…

什么样的台灯灯光是好的?推荐中性色温的护眼台灯

台灯的灯光指的是白光和黄光&#xff0c;就是台灯的色温&#xff0c;而色温也是也会影响我们的直观感受的。 低色温&#xff08;>3000K&#xff09;光源偏黄&#xff0c;属于暖色调&#xff0c;适合休息高色温&#xff08;<5000K&#xff09;光源偏白&#xff0c;属于冷…

MWORKS.Sysplorer 2023a前瞻版上线——面向MBD全流程的覆盖

信息物理融合系统&#xff08;CPS&#xff09;的设计、建模与仿真是装备数字化的核心技术。MWORKS.Sysplorer经过多年的发展&#xff0c;已经支持机械、电气、流体、热力学等多个物理域的统一建模和统一仿真求解&#xff0c;解决了物理域统一表达与统一建模问题。为了支持完整的…