Bash脚本-快查快用总览

Bash脚本-快查快用总览

  • 一、概述
  • 二、输入、输出
    • 1. 输入
    • 2. 输出
  • 三、传递参数
  • 四、循环控制
  • 五、
  • 六、

一、概述

这里是记录我使用bash脚本的常用浓缩代码,很多都是根据下面脚本改造

二、输入、输出

1. 输入

read 命令从标准输入中读取一行,并把输入行的每个字段的值指定给 shell 变量

#!/bin/sh
read name 
echo "$name It is a test"

# sad It is a test

2. 输出

  • echo 内容
    内容是可以加字符串的双引号或者不加也可以的
# 1.显示普通字符串
echo "It is a test"		# It is a test
echo It is a test		# It is a test

# 2.显示转义字符
echo "\"It is a test\""		# "It is a test"

# 3.显示变量
name="zhangsan"
echo $name is a good name		# zhangsan is a good name
echo "$name is a good name"		# zhangsan is a good name

# 4.显示换行
echo -e "Zhangshan! \n" 	# -e 开启转义
echo "is a good name"			
# 输出如下
# Zhangshan! 

# is a good name

# 5.显示不换行 
echo -e "Zhangshan! \c" 	# -e 开启转义 \c 不换行
echo "is a good name"
# 输出如下
# Zhangshan! is a good name

# 6.显示结果定向至文件
echo "It is a test" > myfile

# 7.原样输出字符串,不进行转义或取变量(用单引号)
echo '$name\"'		# $name\"

# 8.显示命令执行结果(用的是反引号 `, 非单引号 ')
echo `date`		# 2024年 04月 29日 星期一 21:58:21 CST

三、传递参数

参数处理说明
$#传递到脚本的参数个数
$*以一个单字符串显示所有向脚本传递的参数。如"$*“用「”」括起来的情况、以"$1 $2 … $n"的形式输出所有参数。
$$脚本运行的当前进程ID号
$!后台运行的最后一个进程的ID号
$@ ∗ 相同,但是使用时加引号,并在引号中返回每个参数。如 " *相同,但是使用时加引号,并在引号中返回每个参数。如" 相同,但是使用时加引号,并在引号中返回每个参数。如"@“用「”」括起来的情况、以"$1" “ 2 " … " 2" … " 2""n” 的形式输出所有参数。
$-显示Shell使用的当前选项,与set命令功能相同。
$?显示最后命令的退出状态。0表示没有错误,其他任何值表明有错误。
echo "bash例子";
echo "脚本名称:$0";
echo "脚本运行的当前进程ID号: $$"
echo "后台运行的最后一个进程的ID号: $!"
echo "参数字符串 : $*"

# 循环获取参数
for loop in $@
do
    echo "参数: $loop"
done

# 换行
echo -e " \n"

if [ $# == 1 ]
then
   echo "第一个参数为:$1";
elif [ $# == 2 ]
then
   echo "第一个参数为:$1";
   echo "第二个参数为:$2";
elif [ $# == 3 ]
then
   echo "第一个参数为:$1";
   echo "第二个参数为:$2";
   echo "第三个参数为:$3";
else
   echo "参数不对"
fi

输出

bash例子
脚本名称:test.sh
脚本运行的当前进程ID号: 279888
后台运行的最后一个进程的ID号: 
参数字符串 : 11 33 56
参数: 11
参数: 33
参数: 56
 

第一个参数为:11
第二个参数为:33
第三个参数为:56

四、循环控制

五、

六、

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

力扣-有效的数独

请你判断一个 9 x 9 的数独是否有效。只需要 根据以下规则 ,验证已经填入的数字是否有效即可。 数字 1-9 在每一行只能出现一次。数字 1-9 在每一列只能出现一次。数字 1-9 在每一个以粗实线分隔的 3x3 宫内只能出现一次。(请参考示例图) 注…

AI图书推荐:基于AI的商业数据分析应用

《基于AI的商业数据分析应用》(AI-Based Data Analytics: Applications for Business Management)的作者是Kiran Chaudhary、 Mansaf Alam。 本书涵盖了与营销和商业分析相关的各种主题。它探讨了组织如何通过使用数据分析及时做出更好的决策来增加利润。…

verilog分析task的接口设计,证明这种写法:assign {a,b,c,d} = links;

verilog分析task的接口设计,证明这种写法:assign {a,b,c,d} links; 1,task在状态机中的使用好处:2,RTL设计3,测试testbench4,波形分析,正确! 参考文献: 1&am…

蓝牙核心规范(core Specification)与应用规范(Profile)

加zkhengyang可申请加入蓝牙音频研究开发交流答疑群(课题组),赠送实际蓝牙耳机项目核心开发资料, 我们看到的大部分资料对于蓝牙协议分层一般是核心规范。 射频,基带,链路管理属于蓝牙硬件模块(一般由硬件实现比如FPGA) 逻辑链…

MongoDB数据库迁移的两种办法

在做系统运维时,经常需要对数据库进行迁移,今天这里分享一下MongoDB数据库数据迁移的办法。两种方法 方法1 利用NoSQLBooster for MongoDB直接复制粘贴 这种方法,适合在windows电脑上,可以直接访问原始和目标两个MongoDB库的。优…

Burp自定义插件实现请求拦截

在安全测试时,经常需要对请求进行拦截以及配置管理,以便过滤域名或路径的请求。例如:被测对象会不断收集信息(例如IP地址、设备信息)通过HTTP传给服务端。本文将介绍如何使用Burp Suite的扩展插件,通过开发…

释放Stable Diffusion 无限可能

最近在整理大语言模型的系列内容,Stable Diffusion 是我下一篇博客的主题。关注 Stable Diffusion,是因为它是目前最受欢迎和影响力最大的多模态生成模型之一。Stable Diffusion 于 2022 年 8 月发布,主要用于根据文本的描述产生详细图像&…

微服务使用SockJs+Stomp实现Websocket 前后端实例 | Vuex形式断开重连、跨域等等问题踩坑(二)

大家好,我是程序员大猩猩。 上次我们实践了,Java后端如何完成SockJSStomp的配置实现。 微服务使用SockJsStomp实现Websocket 前后端实例 | Vuex形式断开重连、跨域等等问题踩坑(一) 那么今天我们做一下web vue端的是如何来实现…

android studio拍照功能问题解决

1.点击拍照功能直接闪退 2.拍照后不能选择确认键,无法保存 上述是在android studio做项目中经常会使用到模拟器或真机的拍照功能时主要遇到的两个问题。 解决方法: 1.直接闪退问题: if(Build.VERSION.SDK_INT>Build.VERSION_CODES.N)…

谈谈进些年的BLE开发项目

加zkhengyang可申请加入蓝牙音频研究开发交流答疑群(课题组) 最早接触BLE项目是在做一款女性按摩器产品上,所谓的生活用品,用的是TI CC2640,资料齐全,上手快,配合手机app通讯开发,当然这个是单模的蓝牙芯…

学习C语言的指针

有一阵没更新了,因为最近比较繁忙,所以更新比较慢,还在慢慢学习 话不多说,开始今天的内容,聊一聊C语言指针。 很多小伙伴可能会被指针这个名字吓到,觉得很难,实际上确实有点难,但是…

cesium教程

环境搭建 vscode安装Visual Studio Code - Code Editing. Redefined nodejs安装Node.js — Run JavaScript Everywhere cesium源码下载编译 cesium官网下载源码https://cesium.com/downloads/ 解压下载的源码 VsCode打开远吗,找到index.html,右键打开 Open wit…

职场人是如何被拉开差距的?

事实上,职场人的差距从第一天就拉开了。 心理学里有一个词,叫做“首因效应,说的是人们在第一次接触时形成的印象,将会决定后续认知的基调。 入职第一天,从自我介绍开始,展示自己的特长,给大家…

unity项目《样板间展示》开发:菜单界面

unity项目《样板间展示》开发:菜单界面 前言UI菜单创建逻辑实现结语 前言 这是这个项目demo教程的最后一节,这节是菜单界面部分的创建 UI菜单创建 创建一个新的场景,在Scene文件中右键选择Create->Scene,创建新的场景 在场景…

【服务器部署篇】Linux下快速安装Jenkins

作者介绍:本人笔名姑苏老陈,从事JAVA开发工作十多年了,带过刚毕业的实习生,也带过技术团队。最近有个朋友的表弟,马上要大学毕业了,想从事JAVA开发工作,但不知道从何处入手。于是,产…

Elasticsearch实现hotel索引库自动补全、拼音搜索功能

Elasticsearch实现hotel索引库自动补全、拼音搜索功能 在这里边我们有两个字段需要用拼音分词器,一个name字段,一个all字段。 然后我们还需要去实现自动补全,而自动补全对应的字段必须使用completion类型。目前我们酒店里面所有的字段都采用的…

暴雨信息| AI“速”不可挡,倒逼算力巨变!

「 “当某一天人工智能的智慧超越人类,你会发现人工智能将会以迅雷不及掩耳之势改变世界,那个改变是不可逆的,极其迅速。” 」 暴雨信息副董事长孙辉在“IPF2024”上的这个观点,正是当今世界在AI影响下急速前行的真实写照。 记得…

高压、单通道、轨对轨输入输出功率运算放大器RS8471

RS8471是一款高压、单通道、轨对轨输入输出的功率运算放大器,它的工作电压范围在4.5V到24V,最大峰值输出电流2.5A,失调电压为3mV,增益带宽积为25MHz,并提供65V/us的高压摆率,确保输出信号快速建立”,这些特…

[Java EE] 多线程(五):单例模式与阻塞队列

1. 单例模式 单例模式是校招中最长考的设计模式之一,首先我们来谈一谈什么是设计模式: 设计模式就好像象棋中的棋谱一样,如果红方走了什么样的局势,黑方就有一定地固定地套路,来应对这样的局势,按照固定地套路来,可以保证在该局势下不会吃亏. 软件开发也是同样的道理,有很多…

(十二)Servlet教程——HttpServletResponse接口

HttpServletResponse接口继承自ServletResponse接口,HttpServletResponse用来封装HTTP响应消息,简称response对象。 每次请求一个Servlet,Servlet容器就会针对每次请求创建一个response对象,并把它作为参数传递给Servlet的service…
最新文章