Linux——Bash脚本基本用法总结

news2024/11/27 8:46:14

文章目录

    • 基本语法
      • 基于语法
        • awk(分割命令返回值)
        • sed(处理行内容)
        • 融合正则指令
      • 条件语句
        • 条件判断符
        • 1. if
        • 2. while
    • 额外方法
      • 在脚本中使用命令行指令并获取返回值
      • 延时
      • 打印当前时间

基本语法

基于语法

awk(分割命令返回值)

  • 基本语法:
    • 默认awk不加参数时,默认以空格为分割符;
    • awk -F “:”(以为分隔符);
    • 需要注意的是:如果有多行的输出,那么awk会默认处理多行信息,如果需要指定某一行,可以继续往下看sed指令;
echo xxxx | awk '{print $n}'	# 第一个xxxx部分是命令行打印出来的东西,第二个n是指打印空格分割后的第几个内容
  • Example
# 以:为分隔符,并打印第部分元素
echo "a:b:c:d" | awk -F ":" '{print $1}'

在这里插入图片描述

# 以空格为分隔符,并打印第2部分元素
echo "a:b c:d" | awk '{print $2}'

在这里插入图片描述

# 默认处理多行信息,如果需要指定某一行,需要加上sed指令,可以继续往下看
gpustat | awk '{print $1}'

在这里插入图片描述

sed(处理行内容)

  • 基本语法:
    • 取出某一行内容:sed -n 'xp'x是指指定的行数,从1开始计数,第一行即为1;
command sed -n 'xp'	# 这里的command是指能返回多行信息的命令
  • Example
# 取出第一行内容
gpustat | sed -n '1p'	

分别取出指定行内容:

在这里插入图片描述

融合正则指令

  • 取出第1行以空格为分割的第2个单元内容:
# 命令      第一行     以空格为分割的第2个单元内容
command | sed -n '1p' | awk '{print $2}'
  • Example
gpustat | sed -n '1p' | awk '{print $2}'	# 取出第1行第2个内容,Sun
gpustat | sed -n '2p' | awk '{print $7}'	# 取出第2行第7个内容,89°

完了它居然降温了,本来应该是89°的QAQ…

在这里插入图片描述

条件语句

条件判断符

  • 数字比较条件:比较两个整数谁大谁小,是否相等;
    • -eq:等于
    • -ne:不等于
    • -le:小于等于
    • -ge:大于等于
    • -lt:小于
    • -gt:大于

if条件举例使用方法:

if [ num1 compare num2 ]
then
	xxx # do something
fi

# example 1:
if [ 1 -lt 2 ]
then
	echo "1 < 2"
fi

在这里插入图片描述

1. if

  • 基本语法:
if condition
then
	xxx # do something
fi
  • Example
if true
then
    echo "if I love you"
fi

在这里插入图片描述

2. while

  • 基本语法:
while condition
do 
   	xxx
   	if condition2
   	then
   		break # 退出while循环
   	fi
done
  • Example
while true
do
   	echo "I love you"
   	if true
   	then
   		break
   fi
done

在这里插入图片描述

额外方法

在脚本中使用命令行指令并获取返回值

  • 需要注意的是:在使用该命令时,最好返回值是个数字或者较易处理的字符串或表格;
var=$(command)		# var为command命令的返回值
# 需要注意的点:
# 1. =不能有空格
# 2. command需要用$()的形式包起来

首先在命令行中直接执行命令查看结果:

ps -ef | grep python | grep -c train.py

在这里插入图片描述

随后我们在bash文件中使用该命令获取返回值:

num_process=$(ps -ef | grep python | grep -c train.py) #
echo "num_process is $num_process"

在这里插入图片描述

延时

sleep second	# 此处填写秒数

# 例子
sleep 5			# 等待5s

打印当前时间

  • 可以放在脚本中或者直接在命令行输入:
echo $(date +%Y-%m-%d\ %H:%M:%S)

在这里插入图片描述

参考文章:

  • bash笔记之awk
  • bash学习之sed
  • 条件判断:Bash条件判断
  • shell脚本打印出时间

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

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

相关文章

用友YonSuite“数智飞轮”用场景化告别产品与客户间的“翻译”

我们无疑是幸运的。淘宝、美团、掌上银行APP……这些诞生不过10年左右的移动互联网产物&#xff0c;用简单便捷的操作改变了我们千百年来衣食住行的方式。 相对而言&#xff0c;企业多少有点“不幸”。信息化建设虽然已经开展了20余年&#xff0c;但依然没享受到科技的便捷&am…

Java基础-继承

子类继承父类后构造器的特点&#xff1a; 子类中所有的构造器默认都会先访问父类中的无参的构造器&#xff0c;再执行自己。 为什么&#xff1f; 子类在初始化的时候&#xff0c;有可能会使用到父类中的数据&#xff0c;如果父类没有完成初始化&#xff0c;子类将无法使用父类…

一维离散数据的分区均匀采样

原理 原理类似文章点云梯度下采样中提到的梯度下采样。 大致采样思路如下&#xff1a; Step1&#xff1a;计算出每个待采样点 pip_ipi​ 的梯度 GiG_iGi​&#xff0c;并计算节点点云整体的平均梯度作为梯度阈值 GtG_tGt​。 Step2&#xff1a;比较 GiG_iGi​ 与梯度阈值 G…

基于BP神经网络的轨迹跟踪(Matlab代码实现)

&#x1f468;‍&#x1f393;个人主页&#xff1a;研学社的博客 &#x1f4a5;&#x1f4a5;&#x1f49e;&#x1f49e;欢迎来到本博客❤️❤️&#x1f4a5;&#x1f4a5; &#x1f3c6;博主优势&#xff1a;&#x1f31e;&#x1f31e;&#x1f31e;博客内容尽量做到思维缜…

002.组合|||——回溯算法

1.题目链接&#xff1a; 216. 组合总和 III 2.解题思路&#xff1a; 2.1.题目要求&#xff1a; 给一个元素数量k和一个元素和n&#xff0c;要求从范围[1,2,3,4,5,6,7,8,9]中返回所有元素数量为k和元素和为n的组合。&#xff08;每个数字只能使用一次&#xff09; 比如输入k…

大话游戏循环Game Loop——PythonC++

目录 前言 什么是游戏循环&#xff1f; 游戏循环的意义 从结构上来看&#xff1a; 从功能上来看&#xff1a; 正文 一个简单的游戏循环 阻塞游戏循环 现代基础游戏循环 “时间” 固定帧率游戏循环 时间驱动不固定帧率游戏循环 灵活帧率更新 之后的新问题 总结 …

网络基础—网关、网段、子网掩码

接上个笔记&#xff0c;工作时发现看似在一个网段的2个IP地址却ping不通&#xff0c;这里就是子网掩码发挥了作用。 IP地址 首先从最熟悉的IP地址开始介绍&#xff0c;IP地址是唯一标识&#xff0c;由32个0和1构成&#xff0c;长度为32bit&#xff0c;如00001010000000000000…

序列模型之循环神经网络(二)

目录 一.语言模型和序列生成 二.新序列采样 三.带有神经网络的梯度消失 四.GRU单元 一.语言模型和序列生成 上图的例子就是咱们的手机上的语音转文字输入差不多&#xff0c;说一句话&#xff0c;可能有多种可能的句子&#xff0c;那么到底是哪一种呢&#xff0c;咱们的语言…

【EDA365电子论坛】硬件人经历南下、北上,回乡创业,后悔了吗?

南下&#xff1f;北上&#xff1f;留下来&#xff1f;亦或是回乡&#xff1f;这些问题或许是每个电子人都曾遇到过的&#xff0c;如果可以&#xff0c;谁不想留在自己所熟悉的地方呢&#xff0c;但生活&#xff0c;总会让你想要的更多&#xff0c;只能选择再前行一步。 前几天在…

LeetCode题目笔记——2486. 追加字符以获得子序列

文章目录题目描述题目难度——中等方法一&#xff1a;一次遍历代码/C总结这个是上周末的周赛题目&#xff0c;当时忘做了&#xff0c;晚上的时候才想起&#xff0c;可惜了&#xff0c;题目还挺有意思的&#xff0c;类似的好像在以前做过&#xff0c;题目联机在这题目链接 题目…

你好,法语!A2知识点总结(4)

4.固定表达 4.1 devoir faire 4.2 ne…que ne…que&#xff1a;只…,仅仅 注意 用ne…que替换句子 Ex : En ce moment, il mange surtout des crales. En ce moment, il ne mange que des crales. 1)Elle lit surtout des romans. Il fait surtout du tennis.Ils s’intres…

NeRF算法Keras实现教程

在这个教程中&#xff0c;我们展示了 Ben Mildenhall 等人的研究论文 NeRF&#xff1a;将场景表示为用于视图合成的神经辐射场的最小实现。作者提出了一种巧妙的方法&#xff0c;通过神经网络对体积场景函数进行建模来合成场景的新颖视图。 为了帮助你直观地理解这一点&#x…

Mac下adb性能测试实战

本次实验以Editor App为例 1.测试Editor启动时长 打开终端&#xff0c;依次输入如下命令&#xff1a; adb devices 查看设备是否连接 adb shell 进入手机系统 adb devices pm list package -f | grep vidma 获取Editor包名 dumpsys package vidma.video.editor.video…

[glacierctf 2022] 只会3个

目录 Crypto CryptoShop 完成 Strange Letters Simple Crypto ChaCha60 Unpredictable Misc The Climber Size Matters ClipRipStage1 pwn Break the Calculator old dayz File-er rev Whats up Sandboxer 这个比赛完事后马上关网站。想复现都困难。会的不…

【宝塔面板安装与配置、Redis安装与配置、MySQL安装与配置】

提示&#xff1a;宝塔面板下载地址&#xff1a;https://www.bt.cn/new/download.html 文章目录前言一、快速迁移二、设置固定ip一.保证可以连接网络二.设置固定ip三、搭建宝塔面板四、做好备份五、安装Redis六、安装MySQL一、8.0版本以下二、8.0版本以上三、安全组开放端口四、…

GitHub上最全的Java面试题库竟还要收费?黑客强行开源后遭起诉

“金三银四”、“金九银十” 一直被称为是跳槽的旺季&#xff0c;最近也有不少小伙伴找我咨询一些面试相关的问题。但是我的建议是跳槽之前先想清楚自己为什么要跳槽&#xff0c;不要看到身边的同事跳槽之后薪资涨了不少&#xff0c;没有做好充分的准备就盲目开始投简历去面试。…

最新版 Cesium(1.99.0) 构建封装开发环境以及遇到问题

最新版 Cesium&#xff08;1.99.0&#xff09; 构建封装开发环境以及遇到问题使用版本Webpack4.* 集成 Cesium 错误官方示例介绍官方示例配置介绍&#xff1a;官方示例配置补充&#xff1a;webpack5 过程学习资料githup 完整项目最近项目用 Cesium 比较多&#xff0c;因此想把常…

世界各国GDP相关面板数据(1960-2019年)

1、数据来源&#xff1a;世界银行 2、时间跨度&#xff1a;1960-2019年 3、区域范围&#xff1a;全球 4、指标说明&#xff1a; 该数据包含以下指标&#xff1a; 1.世界各国1960-2019年GDP 2.世界各国1960-2019年GDP增长率 3.世界各国1960-2019年人均GDP 4.世界各国196…

SwiftUI 精品源码之学习可视化应用程序基于SceneKit,AVSpeechSynthetizer 文字转语音功能tts(教程)

我是一个非常注重视觉的人,这也适用于我的学习。当他们做某些事情时,我通过观察事物或其他人来学习。我也有很强的听觉倾向,所以你不能指望我读完一本 300 页的小说,但你可以指望我听 1 小时的播客而不会分心,并从中真正学到一些东西。 这种学习方式时常帮助我,从一门学科…

龙蜥开发者说:开源是场马拉松!来自广州大学姚同学的开源成长记 | 第 13 期

「龙蜥开发者说」第 13 期来了&#xff01;开发者与开源社区相辅相成&#xff0c;相互成就&#xff0c;这些个人在龙蜥社区的使用心得、实践总结和技术成长经历都是宝贵的&#xff0c;我们希望在这里让更多人看见技术的力量。本期故事&#xff0c;我们邀请了龙蜥社区开发者姚胤…