当前位置: 首页 > news >正文

shell简单使用介绍

脚本的基本元素

  1. 声明,在解释并执行当前脚本文件中的语句之前,需要声明使用的命令解释器

#一般写的解释器为
#!/bin/bash

这里的#不再是注释了,而是必要的声明

  1. 命令,也就是需要执行的语句

  1. 注释,对代码进行解释说明

分为单行注释和多行注释

单行注释 以#开头的一整行
#这里是注释
#这里也是注释多行注释 使用冒号“:”配合here document可实现
:<<block 
这里是注释
这里也是注释
这里还是注释
block
  1. 赋予rx的权限

shell脚本编写规则

  1. 建议脚本文件名应该简单清晰明了,看了就知道意思

  1. 文件开头指定脚本解释器 #!/bin/sh或者#!/bin/bash

  1. 在开头写明版本特权等信息

  1. 尽量使用英文注释

shell常用的命令

echo

echo是用于终端打印的基本命令,默认情况下,echo 在每次调用后会添加一个换行符

[root@localhost shell]# echo hello
hello
[root@localhost shell]# echo "hello world"
hello world
[root@localhost shell]# echo "hello;world"
hello;world
[root@localhost shell]# echo hello;world
hello
bash: world: command not found...
Failed to search for file: /mnt/BaseOS was not found#注意这里的双引号""用来包含整个语句,防止被;打断语句

echo参数

说明

-n

不换行输出

-e

解析转义字符

\n

换行

\r

回车

\t

制表符

\b

退格

\v

纵向制表符

[root@localhost shell]# echo -n why so serious
why so serious[root@localhost shell]# 
[root@localhost shell]# echo -e why\tso\tserious
whytsotserious
[root@localhost shell]# echo -e "why\tso\tserious"
why    so    serious

eval

命令格式:eval args

功能:当shell程序执行到eval语句时,shell读入参数args,并将它们组合成一个新的命令,然后执行

[root@localhost shell]# a='shuju;head -1 /etc/passwd'
[root@localhost shell]# echo $a
shuju;head -1 /etc/passwd
[root@localhost shell]# eval echo $a
shuju
root:x:0:0:root:/root:/bin/bash

exec

命令能够在不创建新的子进程的前提下,转去执行指定的命令,当指定的命令执行

完毕后,该进程就终止了

export

export设置或者显示环境变量

read

read 是一个重要的 bash 命令,用于从键盘或标准输入读取文本,我们可以使用 read 命

令以交互形式读取来自用户的输入

通常我们按下回车键表示命令输入完成,但是很特殊情况下,我们需要基于字符数或者

特定字符来表示命令输入完成

-p prompt:设置提示信息
-t timeout:设置输入等待时间,单位默认为秒
[root@localhost shell]# read -t 10 -p "please input your name:" name
please input your name:me
[root@localhost shell]# echo $name
me
[root@localhost shell]# echo -n "please input your name:"; read name1 name2
please input your name:me you
[root@localhost shell]# echo $name1
me
[root@localhost shell]# echo $name2
you

shift

在程序中每使用一次shift语句,都会使所有的位置参数依次向左移动一个位置,

并使位置参数$#减1,直到减到0为止

exit

退出shell程序

shell脚本的执行方式

  • bash ./filename.sh——产生子进程,再运行,使用当前指定的bash shell去运行

  • ./filename.sh

产生子进程,再运行,使用脚本里面指定的shell去运行。使用该种方式

执行需要x权限

  • source ./filename.sh

source命令是一个shell内部命令,其功能是读取指定的shell程

序文件,并且依次执行其中的所有的语句,并没有创建新的子shell进程,所以脚本里面所有创

建的变量都会保存到当前的shell里面

  • .filename.sh——和source一样,也是使用当前进程执行

首选我们写一个以 .sh结尾的文件

vim read01.sh

#!/bin/bashread -n1 -p "DO you want wo continue [Y/N]" answer
case $answer inY|y)
echo "fine,continue";;N|n)
echo "ok,good bye";;*)
echo "error choice";;
esac
exit 0

使用各种方法执行它

这里使用第一种方法

[root@localhost shell]# bash ./read01.sh 
DO you want wo continue [Y/N]yfine,continue

相关文章:

shell简单使用介绍

脚本的基本元素声明&#xff0c;在解释并执行当前脚本文件中的语句之前&#xff0c;需要声明使用的命令解释器#一般写的解释器为 #!/bin/bash这里的#不再是注释了&#xff0c;而是必要的声明命令&#xff0c;也就是需要执行的语句注释&#xff0c;对代码进行解释说明分为单行注…...

RK3568平台开发系列讲解(调试篇)内核函数调用堆栈打印方法汇总

🚀返回专栏总目录 文章目录 一、dump_stack 函数二、WARN_ON(condition)函数三、BUG_ON (condition)函数四、panic (fmt...)函数沉淀、分享、成长,让自己和他人都能有所收获!😄 📢本篇将对驱动调试方法进行汇总学习。 一、dump_stack 函数 dump_stack 作用:打印内核调…...

一次内存泄露排查

前因&#xff1a; 因为测试 长时间压测导致 接口反应越来越慢&#xff0c;甚至 导致服务器 崩溃 排查过程 1、top 查看是 哪个进程 占用 内存过高 2、根据 进程 id 去查找 具体是哪个 程序的问题 ps -ef| grep 41356 可以看到 具体的 容器位置 排查该进程 对象存活 状态…...

「Mac安装ps」Adobo Photoshop 2023 下载安装详情教程,支持 AI 插件的 24 版 Photoshop

前言 Adobo Photoshop 2023 已推出&#xff0c;由于目前AI人工智能技术火爆&#xff0c;而很多的 AI 插件最低也需要24版的 photoshop &#xff0c;所以这里我遍搜集并整理了此新版本的 photoshop 安装使用教程&#xff0c;后续也将提供 AI 插件的下载安装教程 安装文件下载 …...

Redis单线程还是多线程?IO多路复用原理

目录专栏导读一、Redis版本迭代二、Redis4.0之前为什么一直采用单线程&#xff1f;三、Redis6.0引入多线程四、Redis主线程和IO线程是如何完成请求的&#xff1f;1、服务端和客户端建立socket连接2、IO线程读取并解析请求3、主线程执行请求命令4、IO线程会写回socket和主线程清…...

小菜鸟Python历险记:(第五集)

今天写的文章是记录我从零开始学习Python的全过程。在Python中对方法进行备注的时候&#xff0c;往往都是写在方法中的第一行所在位置。在书写注释以后&#xff0c;在调用方法的时候&#xff0c;鼠标点击方法会有一个浮动的提示显示备注内容。具体如下图所示&#xff1a;注释的…...

【思维模型】五分钟了解<复利思维>,为何学习复利思维?什么是复利思维?如何应用复利思维?

【思维模型】五分钟了解&#xff1c;复利思维&#xff1e;&#xff0c;为何学习复利思维&#xff1f;什么是复利思维&#xff1f;如何应用复利思维&#xff1f;1. 为何学习复利思维&#xff1f;2. 什么是复利思维&#xff1f;3. 如何应用复利思维&#xff1f;4. 小结参考&#…...

Vue.js语法详解:从入门到精通

Vue.js是一个流行的JavaScript框架&#xff0c;用于构建用户界面。它的核心特性包括数据双向绑定、组件化架构、虚拟DOM和响应式系统等。在本文中&#xff0c;我们将深入探讨Vue.js的语法&#xff0c;帮助读者更好地理解和应用Vue.js。1.模板语法Vue.js的模板语法采用了类似HTM…...

程序员的代码行数越少越好?

有些人可能会认为&#xff0c;应用程序中的代码行越少&#xff0c;就越容易阅读。这句话只有部分正确&#xff0c;我认为代码可读性的度量标准包括&#xff1a;代码应具备一致性代码应具备自我描述性代码应具备良好的文档代码应使用稳定的现代功能代码不应过于复杂代码的性能不…...

【每日一题Day156】LC1032字符流 | 字典树

字符流【LC1032】 设计一个算法&#xff1a;接收一个字符流&#xff0c;并检查这些字符的后缀是否是字符串数组 words 中的一个字符串。 例如&#xff0c;words ["abc", "xyz"] 且字符流中逐个依次加入 4 个字符 a、x、y 和 z &#xff0c;你所设计的算法…...

V2G模式下含分布式能源网优化运行研究(Matlab代码实现)

&#x1f4a5;&#x1f4a5;&#x1f49e;&#x1f49e;欢迎来到本博客❤️❤️&#x1f4a5;&#x1f4a5; &#x1f4cb;&#x1f4cb;&#x1f4cb;本文目录如下&#xff1a;&#x1f381;&#x1f381;&#x1f381; 目录 &#x1f4a5;1 概述 &#x1f4da;2 运行结果 &am…...

手写一个简单的RPC框架

学习RPC框架&#xff0c;由繁化简&#xff0c;了解其本质原理 文章目录项目简介什么是RPC&#xff1f;项目模块项目代码common模块client模块server模块framework模块测试项目简介 什么是RPC&#xff1f; RPC&#xff08;Remote Procedure Call&#xff09;即远程过程调用&am…...

【剑指offer】旋转数组的最小数字

&#x1f451;专栏内容&#xff1a;剑指offer⛪个人主页&#xff1a;子夜的星的主页&#x1f495;座右铭&#xff1a;前路未远&#xff0c;步履不停 目录一、题目描述1、题目2、示例示例1示例2二、题目分析1、暴力法2、二分法三、代码汇总1、暴力法2、二分法一、题目描述 1、题…...

【Dorker】Portainer轻量级可视化工具

文章目录Portainer简介登录Portainer第一次登录需创建admin&#xff0c;访问地址&#xff1a;xxx.xxx.xxx.xxx:9000选择local选项卡后本地docker详细信息展示安装nginx私有镜像仓库管理Portainer简介 Portainer是Docker的图形化管理工具&#xff0c;提供状态显示面板、应用模板…...

基于 vue.js 进行组件封装的方案

摘要&#xff1a;本文将介绍如何基于 vue.js 进行组件封装的方案。我们将从分析组件封装的优势开始&#xff0c;然后依次介绍 vue.js 的基本概念&#xff0c;以及如何创建、封装和使用自定义组件。最后&#xff0c;我们将通过一个实际的示例&#xff0c;演示如何实现一个基于 v…...

【Unityc#专题篇】之c#基础篇

&#x1f468;‍&#x1f4bb;个人主页&#xff1a;元宇宙-秩沅 &#x1f468;‍&#x1f4bb; hallo 欢迎 点赞&#x1f44d; 收藏⭐ 留言&#x1f4dd; 加关注✅! &#x1f468;‍&#x1f4bb; 本文由 秩沅 原创 &#x1f468;‍&#x1f4bb; 收录于专栏&#xff1a;uni…...

Python(白银时代)——模块、包、异常

异常 概念 程序运行时&#xff0c;如果Python 解释器遇到了错误&#xff0c;会停止程序运行&#xff0c;并且提示错误信息&#xff0c;这就是异常 程序停止执行并提示错误信息的动作&#xff0c;称为 抛出异常 异常捕获 try: 里面的代码&#xff0c;不确定是否能够正常执行. …...

小程序和Vue写法的区别

小程序和Vue写法的区别主要有以下几点&#xff1a; 语法不同&#xff1a;小程序使用的是WXML、WXSS和JS&#xff0c;而Vue使用的是HTML、CSS和JSX。 数据绑定方式不同&#xff1a;小程序使用的是双向数据绑定&#xff0c;而Vue使用的是单向数据流。 1&#xff09;在小程序中需…...

如何实现分布式锁

一、锁的作用 锁是为了解决多线程情况下&#xff0c;对于共享资源的访问安全问题。 但是当系统是分布式的时候&#xff0c;本地锁已经没法锁住所需要的资源&#xff0c;因为本地获取了锁&#xff0c;其他系统无法得知本地锁的情况。 分布式锁&#xff0c;是独立于系统的第一方…...

使用VS2019连接Microsoft SQL Server Compact 4.0数据库

简介 SQL Server Compact Edition是微软推出的一个适用于嵌入到移动应用的精简数据库产品&#xff0c;Windows Mobile开发人员能够使用SQL Server CE开发出将数据管理能力延展到Window Mobile移动设备上的应用程序。虽然SQL Server CE占用的磁盘空间只有3到5兆左右&#xff0c…...

3步搞定ERPNext自动化部署:让企业管理系统安装变得简单

3步搞定ERPNext自动化部署&#xff1a;让企业管理系统安装变得简单 【免费下载链接】erpnext_quick_install Unattended install script for ERPNext Versions, 13, 14 and 15 项目地址: https://gitcode.com/gh_mirrors/er/erpnext_quick_install 还在为复杂的ERPNext安…...

2-1爬取豆瓣电影数据

数据来源网站&#xff1a;https://movie.douban.com/chart import requests import json import timedef fetch_douban():all_movies []start 0limit 20print("开始爬取豆瓣电影榜单")headers {"User-Agent": "Mozilla/5.0","Referer&…...

AI性能测试:TPS之外还要关注什么?

在AI驱动的时代&#xff0c;性能测试已成为软件测试从业者的核心技能。传统软件测试中&#xff0c;TPS&#xff08;Transactions Per Second&#xff0c;每秒事务处理量&#xff09;常被视为黄金指标&#xff0c;用于衡量系统的吞吐能力。然而&#xff0c;AI系统因其独特的计算…...

vLLM实战:手把手教你用LLMEngine构建高效推理服务(附代码解析)

vLLM实战&#xff1a;从零构建高性能大模型推理服务的工程指南 当大语言模型从实验室走向生产环境时&#xff0c;如何实现高吞吐、低延迟的推理服务成为工程化落地的关键挑战。vLLM作为当前最受关注的开源推理框架之一&#xff0c;其核心组件LLMEngine的设计理念值得每一位AI工…...

效率直接起飞!盘点2026年全民喜爱的的AI论文写作工具

一天写完毕业论文在2026年已不再是天方夜谭。2026年最炸裂的AI论文写作工具&#xff0c;实测提速效果惊人&#xff0c;覆盖选题、文献、写作、降重、排版全流程&#xff0c;让你高效搞定论文不再难。 一、全流程王者&#xff1a;一站式搞定论文全链路&#xff08;一天定稿首选&…...

OpenClaw终端增强:Qwen3.5-4B-Claude-4.6-Opus-Reasoning-Distilled-GGUF实现命令行智能补全与解释

OpenClaw终端增强&#xff1a;Qwen3.5-4B-Claude-4.6-Opus-Reasoning-Distilled-GGUF实现命令行智能补全与解释 1. 为什么需要智能终端助手 作为每天与终端打交道的开发者&#xff0c;我经常陷入这样的困境&#xff1a;面对复杂的docker compose命令需要反复查阅文档&#xf…...

36 Python 时序和文本:中文文本处理入门:为什么要先做分词和停用词过滤?

中文文本处理入门&#xff1a;为什么要先做分词和停用词过滤&#xff1f; 刚接触文本分析时&#xff0c;很多人都会有一个疑问&#xff1a; 文本明明已经有内容了&#xff0c;为什么不能直接拿去做分类、聚类或者情感分析&#xff1f; 这个问题其实正好指向了文本挖掘里最基础、…...

nanomsg性能基准测试终极指南:不同消息大小下的吞吐量对比分析

nanomsg性能基准测试终极指南&#xff1a;不同消息大小下的吞吐量对比分析 【免费下载链接】nanomsg nanomsg library 项目地址: https://gitcode.com/gh_mirrors/na/nanomsg nanomsg是一个轻量级、高性能的消息传递库&#xff0c;专为解决常见的通信模式而设计。作为na…...

用ChatTTS打造你的专属AI语音助手:从音色定制到批量合成音频的完整工作流

用ChatTTS打造你的专属AI语音助手&#xff1a;从音色定制到批量合成音频的完整工作流 在内容创作领域&#xff0c;音频正成为越来越重要的媒介形式。无论是知识付费课程的讲解、播客节目的制作&#xff0c;还是智能设备的语音交互&#xff0c;一个稳定、个性化的语音合成系统都…...

立知-lychee-rerank-mm效果展示:汽车配置单与实拍图一致性验证

立知-lychee-rerank-mm效果展示&#xff1a;汽车配置单与实拍图一致性验证 1. 引言&#xff1a;多模态重排序的实用价值 在日常工作和生活中&#xff0c;我们经常遇到这样的场景&#xff1a;看到一份产品配置单&#xff0c;但不确定实际产品是否真的符合描述&#xff1b;或者…...