linux学习第六十三篇:Shell脚本介绍,Shell脚本结构和执行,date命令用法,Shell脚本中的变量

Shell脚本介绍

  1. shell是一种脚本语言 aming_linux blog.lishiming.net
  2. 可以使用逻辑判断、循环等语法
  3. 可以自定义函数
  4. shell是系统命令的集合
  5. shell脚本可以实现自动化运维,能大大增加我们的运维效率

Shell脚本结构和执行

  1. 开头需要加#!/bin/bash
  2. 以#开头的行作为解释说明
  3. 脚本的名字以.sh结尾,用于区分这是一个shell脚本
  4. 执行方法有两种
    • chmod +x 1.sh; ./1.sh ; 这个./是相对路径,使用完整路径也可以执行
    • bash 1.sh
  5. 查看脚本执行过程 bash/sh -x 1.sh
  6. 查看脚本是否语法错误 bash/sh -n 1.sh

date命令用法

显示日历 cal

年月日 date +%Y-%m-%d=date +%F date +%y-%m-%d

时间 date +%H:%M:%S = date +%T

时间戳 date +%s

把时间戳换算成具体日期 date -d @1504620492

把具体日期换算成时间戳 date +%s -d “2018-2-3 22:08:12”

一天后 date -d “+1day”

一天前 date -d “-1 day”

一月前 date -d “-1 month”

一分钟前 date -d “-1 min”

星期 date +%w

今年的第几周 date +%W

Shell脚本中的变量

  1. 当脚本中使用某个字符串较频繁并且字符串长度很长时就应该使用变量代替
  2. 使用条件语句时,常使用变量 if [ $a -gt 1 ]; then … ; fi
  3. 引用某个命令的结果时,用变量替代 n=wc -l 1.txt
  4. 写和用户交互的脚本时,变量也是必不可少的 read -p “Input a number: ” n; echo n如果没写这个n,可以直接使用n 如果没写这个n,可以直接使用REPLY
  5. 内置变量 0,0, 1, 2…2… 0表示脚本本身,1第一个参数,1 第一个参数,2 第二个 …. $#表示参数个数
  6. 数学运算a=1;b=2; c=((((a+b))或者b))或者[a+a+b]

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏nnngu

01 深入理解JVM的内存区域

先来看看JVM运行时候的内存区域,如下图: ?   大多数 JVM 将内存区域划分为 Heap(堆)、方法区、Stack(栈)、本地方法栈、程序计数器。其中 H...

2785
来自专栏向治洪

java基础Haep(堆)和Stack(栈)区别

简单的可以理解为: heap:是由malloc之类函数分配的空间所在地。地址是由低向高增长的。  stack:是自动分配变量,以及函数调用的时候所使用的一些空...

2087
来自专栏IMWeb前端团队

Nodejs进阶:服务端字符编解码&乱码处理

本文作者:IMWeb 陈映平 原文出处:IMWeb社区 未经同意,禁止转载 写在前面 在web服务端开发中,字符的编解码几乎每天都要打交道。编解码一旦...

34510
来自专栏小灰灰

Java 线程学习

Java 线程相关 如何创建线程(两种方式,区别,使用场景) 线程状态调度 多线程数据共享(会有什么问题,如何实现共享,多线程操作同一个变量会有什么问题,如果不...

2319
来自专栏IMWeb前端团队

Promise接口实现之jQuery 的deferred对象

本文作者:IMWeb json 原文出处:IMWeb社区 未经同意,禁止转载 Promise是什么? 我们知道JavaScript是单线程,如果遇到某...

18410
来自专栏java一日一条

Java内存管理原理及内存区域详解

Java虚拟机在执行Java程序的过程中会把它所管理的内存划分为若干不同的数据区域,这些区域都有各自的用途以及创建和销毁的时间。Java虚拟机所管理的内存将会包...

1041
来自专栏乐百川的学习频道

设计模式(二十三) 模板模式

模板模式也是一种行为型模式,而且它非常好理解。当我们解决问题需要固定几个步骤, 这些步骤的顺序不能改变,而步骤的具体实现可以变化的时候,就可以使用模板模式。模板...

1676
来自专栏对角另一面

lodash源码分析之缓存方式的选择

每个人心里都有一团火,路过的人只看到烟。 ——《至爱梵高·星空之谜》 本文为读 lodash 源码的第八篇,后续文章会更新到这个仓库中,欢迎 star:po...

3439
来自专栏Java技术分享圈

杨老师课堂之JavaSe 部分面试题

​ JVM 是 JavaVirtual Machine 的缩写,全称是 Java 虚拟机。Java 语言的一个非常重要的 特性就是跨平台性,而 Java 虚...

893
来自专栏友弟技术工作室

bash脚本编程

1863

扫码关注云+社区

领取腾讯云代金券