文章目录

  • 基本语法
    • 基于语法
      • 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 ]
thenxxx # do something
fi# example 1:
if [ 1 -lt 2 ]
thenecho "1 < 2"
fi

1. if

  • 基本语法:
if condition
thenxxx # do something
fi
  • Example
if true
thenecho "if I love you"
fi

2. while

  • 基本语法:
while condition
do xxxif condition2thenbreak # 退出while循环fi
done
  • Example
while true
doecho "I love you"if truethenbreakfi
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脚本打印出时间

Linux——Bash脚本基本用法总结相关推荐

  1. linux同名文件没有自动替换,linux – bash脚本替换文件中出现的所有占位符

    我正在尝试编写一个bash脚本,用一个同名环境变量替换文件中所有出现的占位符.举个例子,如果我有一个像下面这样的文件-- This is an {{VAR1}} {{VAR2}}. It should ...

  2. GitHub标星1.3W!五分钟带你搞定Linux Bash脚本使用技巧

    原文:https://mp.weixin.qq.com/s/NnpyTOAghr_MXXK5H9twAg 来自:开源最前线(ID:OpenSourceTop)  综合自:https://leanpub ...

  3. 最全的Linux运维bash脚本常见用法总结

    删除重复的数组元素 创建临时关联数组.设置关联数组 值并发生重复赋值时,bash会覆盖该键.这 允许我们有效地删除数组重复. CAVEAT:需要bash4+ 示例功能: remove_array_du ...

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

    shopt -s extdebugf()(printf '%s\n' "${BASH_ARGV[@]}"); f "$@" shopt -u extdebug ...

  5. linux bash脚本编程知识点

    bash变量类型: 环境变量 本地变量(局部变量) 位置变量 特殊变量 本地变量: set VARNAME=VALUE: 作用域为整个bash进程: 引用变量 $(varname) 局部变量: loc ...

  6. Linux.bash脚本编写基础

    一.bash shell脚本编写基础: 1.linux服务器中新建目录:dema 命令行:mkdir dema 2.在目录下创建:dema.sh文件:cd dema/ : touch dema.sh ...

  7. Aria2Android 免root,Linux Bash脚本:在本地机上部署用户自用aria2服务

    说明 aria2是一个功能丰富的下载器,但它是命令行程序,不符合多数人的胃口. 现有的aria2图形界面客户端(如webui-aria2.AriaNg.YAAW等)都是RPC客户端,为了使用这种客户端 ...

  8. 十分钟完成Bash 脚本进阶!列举Bash经典用法及其案例

    前言:在linux中,Bash脚本是很基础的知识,大家可能一听脚本感觉很高大上,像小编当初刚开始学一样,感觉会写脚本的都是大神.虽然复杂的脚本是很烧脑,但是,当我们熟练的掌握了其中的用法与技巧,再多加 ...

  9. linux内存使用监控,如何利用Bash脚本监控Linux的内存使用情况

    如何利用Bash脚本监控Linux的内存使用情况 发布时间:2020-09-13 14:36:53 来源:脚本之家 阅读:114 作者:Magesh Maruthamuthu 栏目:服务器 前言 目前 ...

最新文章

  1. 苹果挂端口方法_一招教你,让光猫四个端口既能上网又能IPTV,不用再区分端口...
  2. 如何通过netstat命令判断是否遭受Dos功击?遭到DDoS该如何缓解?
  3. AutoHotKey程序防止反编译的简单手段
  4. matlab工序能力分析,《MATLAB编程与系统仿真》课程考核说明
  5. 学术诚信是科学精神的基底
  6. 【数据大神必看】微信又添新功能!这个微信群可以学英语,而且全程免费
  7. WifiManager的getScanResults()返回列表为0
  8. C#的多线程机制探索1
  9. 编辑index.html
  10. centos6 安装xhprof扩展
  11. mysql被跑死_MySQL 8.0.23中复制架构从节点自动故障转移
  12. OpenCV学习(14) 细化算法(2)
  13. 【java笔记】线程池的介绍和使用
  14. 侦听键盘,将data写入文件data.out(成功版本)
  15. Julia : 关于类型的匹配和规范建议
  16. ati 缺少关键性文件_win10重装系统缺少计算机所需的介质驱动程序的解决方法
  17. Code For Better 谷歌开发者之声——谷歌Web工具包(GWT)
  18. 冒险岛079单机搭建流程
  19. 震惊!让90%的程序员一看就会的入门级AI项目!
  20. 返回上一页,ajax读出来的数据丢失。

热门文章

  1. 黑白棋游戏源代码分析
  2. echarts实现省市地图
  3. MongoDB-SQL语法
  4. Android转发短信给QQ机器人
  5. lisp调用布置天正的图块_操作太慢?那是你没有正确使用AutoCAD图块!
  6. Fusion Compute计算虚拟化
  7. 2020苏州大学计算机考研上机试题
  8. NOI题库 8211 派
  9. 华为HCIE实验LAB-1
  10. IDEA设置类注释模板