基本的shell编程格式+简单的脚本实例 --- shell脚本编程教程之二

2023-05-16

温习shell编程基础的要点:

正则表达式的要点:

'.'  a.
'*'  a* == a aa aaa ....
'+'  grep -E 'a+' == grep 'a\+'
'?'  grep -E 'a?' == grep 'a\?'
'.*'
()   
|    grep -E 'a|b' 或者

{}   grep -E '(oo){2}' 出现2次
([^:]+) 非冒号 一个或多个
(:.*:)  从第一个冒号到最后一个冒号
([^:]+$)非冒号

sed -r '/([^:]+)(:.*:)([^:]+$)/\3\2\1' 1.txt 第1个和最后1个交换


正式进入shell脚本的编写:

#!/bin/bash  // 指定解析脚本的命令

vim 1.sh

#!/bin/bash
# 这是我们的第一个脚本
# 2017-09-15
echo "Hello Shell"

date 日期命令


date +%Y
date +%y

date +%m

date +%d

date +%H
date +%h

date +%M

date +%S
date +%s
根据秒数 进行时间转换
date -d @100  #时间转换

星期:
date +%w
1       星期几
date +%W
24      一年的第24周

时间格式:
2017-09-15
date +%F

22:55:17
date +%T

时间回退 / 时间前进:
date -d "-1 day" +"%F %T"  // 回退一天 然后输出时间日期
date -d "+1 day" +"%F %T"
date -d "-1 month" +"%F %T"
date -d "+1 month" +"%F %T"
date -d "-1 year" +"%F %T"
date -d "+1 year" +"%F %T"
date -d "-1 hour" +"%F %T"
date -d "+1 hour" +"%F %T"
date -d "-1 min" +"%F %T"
date -d "+1 min" +"%F %T"
date -d "-1 sec" +"%F %T"
date -d "+1 sec" +"%F %T"


用户交互:从终端输入一个数字 然后显示的打印出来

vim read.sh

#!/bin/bash
## 用户交互脚本
 read -p "请输入一个数字:" num
 echo $num

shell 中的变量
$?  表示前面的一条指令执行是个否成功
rpm -qf `whixh vim` 查看vim是有哪个安装包安装的 Fedora系统的命令
apt-cache seach ?  类似于上一条指令 只不过不太精确
$0 脚本本身
$1 $2 $3 $4 脚本的第几个参数
$# 使用的参数个数

vim argument.sh

#!/bin/sh
# 脚本传参使用
echo "\$1=$1"
echo "\$2=$2"
echo "\$3=$3"
echo "\$#=$#"
echo "\$0=$0"


本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

基本的shell编程格式+简单的脚本实例 --- shell脚本编程教程之二 的相关文章

  • UDP通信

    头文件 xff1a 1 pragma once 2 3 include lt stdio h gt 4 include lt unistd h gt 5 include lt string h gt 6 include lt stdlib
  • 交叉编译找不到stdio.h头文件,make menuconfig问题解决办法

    今天测试交叉编译器总出现问题 xff0c fatal error stdio h No such file or directory 后来根据指导使用编译命令 xff1a arm linux gcc src c I 头文件路径 能编译通过
  • 原子上下文,进程上下文,中断上下文的详细解析

    内核空间和用户空间是现代操作系统的两种工作模式 xff0c 内核模块运行在内核空间 xff0c 而用户态应用程序运行在用户空间 它们代表不同的级别 xff0c 而对系统资源具有不同的访问权限 内核模块运行在最高级别 xff08 内核态 xf
  • server,gtk,tslib

    一 首先先说下framebuffer xserver tslib gtk和桌面这五者之间的联系 xff0c 1 framebuffer 即linux系统的一块内存区域 xff0c 往这块区域写东西屏幕就会有所显示 对应的设备文件是dev f
  • 修改启动logo,禁止光标

    linux内核下使用的图片文件类型是pnm和PPm格式的 xff0c 所以在开始介绍修改linux内核启动LOGO之前 xff0c 1 先需要介绍一下怎么样设计自己开始logo的ppm图片 xff0c 首先选择一张png格式的图片 xff0
  • 移植gtk,这个配置有点早,可以了解一下他的工作流程

    最近一直GTK xff0c 感觉好晕 整整耗了我近三天才勉强在网络资料和他人帮助情况下完成 所以记录一下 xff0c 不然我记性太差 xff0c 很可能下班之前就忘了 xff01 以后也好有个参考 首先注意一个问题 xff1a GTK在编译
  • error: ISO C90 forbids mixed declarations and code [-Werror=declaration-after-statement]

    这个错误多为编写linux驱动程序时出现的错误 xff0c 正常情况下是以警告出现的 xff0c 一般有两种情况 xff1a 1 在函数体内 xff0c 定义变量代码前边出现非定义的变量 此变量在其他地方已经定义了 xff0c 编译时就会出
  • 用户空间的虚拟地址如何转换得到实际的物理地址

    思路 xff1a 进程号是一个进程在用户空间的唯一标示 xff0c 所以 xff0c 根据pid可以从内核中得到一个进程的所有信息 xff0c 另外就是知道虚拟地址就可以通过内核物理地址映射到虚拟地址的逆运算就可以还原他的实际物理地址 以上
  • ubuntu系统下的minicom串口/usb转串口配置

    1 安装minicom串口软件 sudo apt get install minicom 2 配置串口 minicom默认配置是tty8 如果你直接使用的就是串口 xff0c 那么安装好之后就可以直接使用了 如果你是用usb转串口 xff0
  • Install ncurses (ncurses-devel) and try again.

    主要就是终端图形配置时最容易出现的问题 xff0c 比如最常见的make menuconfig xff0c 解决方法 xff1a sudo apt get install ncurses devel 屏幕弹出 xff1a 找不到这个软件 x
  • ioremap/mmap的几个测试结论

    环境 xff1a pc机 xff0c ubuntu 14 04 64位 xff0c 物理机 arm板 omap3530 xff0c 1G内存 xff0c 内核linux 2 6 32 1 mmap在pc机上测试映射大小 xff0c 可以将文
  • Freertos的钩子函数

    何谓钩子函数 xff1f 大多数操作系统 xff0c 如 xff1a windows linux ucos freertos 其实都有钩子函数 xff0c 能干什么呢 xff1f 其实就是操作系统留给开发者的一个回调函数 xff0c 具体有
  • fopen :invalid argument错误

    今天使用文件操作函数 xff1a fopen fread fwrite fclose时 xff0c 编译正常通过了 xff0c 但是运行时就爆出了invalid argument错误 FILE fp 61 fopen 34 a txt 34
  • jiffies:内核中的时间观念

    jiffies在内核中是一个全局变量 xff0c 声明包含在 include lt linux jiffies h gt 中 xff0c 几个内核中常用的的概念 xff1a 1 HZ 内核常量 ARM架构HZ 61 100 X86架构HZ
  • git 学习之一

    注 xff1a 这篇博文是本人在学习git软件时 xff0c 自己整理出来的 xff0c 对于git软件的知识点层次分明 xff0c 举例实用 xff0c 最主要的是自己的亲身学习经历 xff0c 还可以作为工具手册 xff0c 哪一点不清
  • git 学习之二

    1 git创建版本库 创建一个版本库非常简单 xff0c 首先 xff0c 选择一个合适的地方 xff0c 创建一个空目录 xff1a mkdir learngit cd learngit pwd Users michael learngi
  • linux环境的sd卡格式化,分区

    环境 xff1a ubuntu xff0c 大sd卡 我们买过来的sd卡 xff0c 插到电脑上 xff0c 安装好sd卡的驱动之后 xff0c 就会在我的电脑里面开到可移动磁盘 xff0c 实际上我们看到的这个可移动磁盘可用空间就是sd卡
  • 详解:tslib移植arm全过程

    环境 xff1a Ubuntu xff0c 交叉编译器 xff0c tslib 1 4 移植步骤 xff1a 第一步 xff1a 获取tslib的源码 使用git获取tslib源码 xff1a git clone https github
  • 根文件系统的制作,busybox编译以及中间遇到的问题

    软件环境 xff1a Ubuntu 14 10 busybox 1 10 编译配置 xff1a ARCH 61 arm CROSS COMPILE 61 arm linux make defconfig 或者 make menuconfig
  • selected device is not a touchscreen I understand

    具体tslib的移植在上一篇博客中已经做了详细的说明 xff1a http blog csdn net hpu11 article details 53105947 最近两天一直在做tslib移植触摸屏校准问题 xff0c 在经过tslib

随机推荐

  • error while loading shared libraries : libts-0.0.so.0:cannot open shared object file: No such file o

    这是我在运行自己写的qt程序时 xff0c 爆出的错误 xff0c 从错误的地方来看 xff0c 是我们的库中缺少一个libts 0 0 so 0的动态库 xff0c 如果开发经验比较丰富的人都会知道这个库是tslib的一个库 xff0c
  • ldd 查看可执行文件所依赖的库有哪些

    ldd是linux下的一个脚本命令 xff0c 我们可以通过各种途径去查找它 xff0c 作用 xff1a 打印可执行文件依赖的库 举个实用的例子 xff1a ehome是我自己写的一个只能家具的程序 xff0c 然后经过交叉编译得到的一个
  • FreeRTOS源码下载及源码文件夹介绍

    FreeRTOS源码下载及源码文件夹介绍 1 FreeRTOS源码下载 去官网或其他途径找到下载程序 xff0c 在这里 xff0c 我直接使用了正点原子提供的下载程序 xff1a 双击上图程序后 xff0c 选择存放路径 xff0c 下载
  • Linux如何手动挂载/卸载u盘

    1 首先你得保证你的U盘的格式是fat格式 先进入 mnt 目录新建一个usb目录 cd mnt mkidr usb 2 先fdisk l xff0c 然后插上U盘 xff0c fdisk l 查看是否有新的硬盘添加上来了 xff1f 最好
  • 写一个简单脚本文件判断文件的存在性

    实现代码一 1 2 3 4 5 6 7 8 9 10 1
  • 触摸屏与usb鼠标同时支持

    最近 xff0c 做系统移植 xff0c 根文件系统自己做的 xff0c 移植好tslib xff0c 也可以触摸屏校准 xff0c 触摸屏也可以正常使用 xff0c 但是插上usb鼠标时 xff0c 系统能枚举出usb的信息 xff0c
  • 内核裁剪和部分选项的意义

    嵌入式驱动开发 xff0c 内核开发 xff0c 都避免不了的和Linux打交道 xff0c 尤其是做系统移植 xff0c 在编译内核的时候 xff0c 我们都需要把没用的内核模块给删除掉 xff0c 以减少内核的文件大小 xff0c 这当
  • printk打印级别输出

    内核的打印函数和用户空间的打印函数是相同的 xff0c 只是关键字不太一样 xff0c 内核是printk xff0c 而用户空间则是printf 在内核空间只不过有一个打印级别的设置 xff0c 所谓的打印级别不过是几个宏定义 print
  • 结构体,联合的位域定义方法,以及结构体大小的计算

    结构体有一种定义方式叫做位域定义方式 xff0c 如下 struct ctl register int a 16 char c 4 这种定义方法 xff0c 一般常用在嵌入式开发的内核层的代码中经常出现 int a 16 代表a只占int的
  • c语言中__attribute__的意义

    微信搜索关注公众号 郑州行疆户外 了解软件工程师的业余户外生活 我们在进行定义数据结构计算数据结构大小的时候 xff0c 或者进行网络通讯的socket发送数据的时候 xff0c 都会遇到一个共同的问题 xff1a 数据对齐问题 这个问题是
  • linux播放音乐,录音命令-----arecord,aplay

    微信搜索关注公众号 郑州行疆户外 了解软件工程师的业余户外生活 用了这么长时间的Linux系统 xff0c 是不是还没有用Linux听过音乐 xff0c 一般使用Linux系统的人都是纯属办公需要或者自己对软件开发玩的 xff0c 很少是做
  • Unix或Linux中&、jobs、fg、bg等命令的使用方法

    fg bg jobs amp ctrl 43 z都是跟系统任务有关的 xff0c 虽然现在基本上不怎么需要用到这些命令 xff0c 但学会了也是很实用的 一 amp 最经常被用到 这个用在一个命令的最后 xff0c 可以把这个命令放到后台执
  • linux tftp服务器搭建与测试

    1 安装tftp服务器 sudo apt get install tftp hpa tftpd hpa tftp hpa是客户端 tftpd hpa是服务器端 2 配置tftp服务器 sudo vim etc default tftpd h
  • FreeRTOS基础知识

    FreeRTOS任务特性 xff1a 简单 xff1b 没有使用限制 xff1b 支持抢占 xff1b 支持优先级 xff1b 每个任务都有堆栈 xff0c 但也导致了RAM使用量增大 xff1b 如果使用强化在哪的话必须仔细考虑重入的问题
  • makeinfo 安装

    环境 ubuntu sudo apt get install texinfo 就OK 今天在打包的时候有个包需要 makeinfo 当时就各种搜结果就没有 makeinfo 这个软件包 xff0c 最后看到有人说其实就是 texinfo 这
  • 通过MCU实现Altera FPGA在线升级

    一 xff0e 问题背景 在实际工程应用中 xff0c 我们时常会遇到为解决某个老产品的BUG xff0c 需要在工程现场更新设备的FPGA代码 xff0c 或者参加电信测试时需要现场升级设备FPGA程序以便于调试 公司现阶段所用的Alte
  • ubuntu linux zip和unzip类命令详解

    微信搜索关注公众号 郑州行疆户外 了解软件工程师的业余户外生活 1 zip zip r myfile zip 将当前目录下的所有文件和文件夹全部压缩成myfile zip文件 xff0d r表示递归压缩子目录下所有文件 2 unzip un
  • ubuntu运行sh脚本sudo自动输入密码

    微信搜索关注公众号 郑州行疆户外 了解软件工程师的业余户外生活 示例 xff1a sudo apt get update 第一种方法 xff1a 使用管道 xff08 上一个命令的 stdout 接到下一个命令的 stdin xff09 b
  • 基本命令+环境变量+正则表达式 --- shell脚本编程教程之一

    vim 单纯的使用vi查看文件 shell 编程常见的命令 xff1a alias 别名 给一长命令起别名 例如 xff1a alias myssh 61 34 ssh root 64 192 168 1 158 34 myssh 相当于
  • 基本的shell编程格式+简单的脚本实例 --- shell脚本编程教程之二

    温习shell编程基础的要点 xff1a 正则表达式的要点 xff1a 39 39 a 39 39 a 61 61 a aa aaa 39 43 39 grep E 39 a 43 39 61 61 grep 39 a 43 39 39 3