20.1 shell脚本介绍 20.2 shell脚本结构和执行 20.3 date命令用法 20.4 shell脚本中的变量

- 20.1 shell脚本介绍
- 20.2 shell脚本结构和执行
- 20.3 date命令用法
- 20.4 shell脚本中的变量
# 20.1 Shell脚本介绍
-  shell是一种脚本语言  关注aming_linux  blog.lishiming.net
-  可以使用逻辑判断、循环等语法
-  可以自定义函数
-  shell是系统命令的集合
-  shell脚本可以实现自动化运维,能大大增加我们的运维效率

# 20.2 Shell脚本结构和执行
- 开头需要加#!/bin/bahs  //告诉系统,这个脚本是通过哪一个解释器来进行操作的
- 以#开头的行作为解释说明
- 脚本的名字以.sh结尾,用于区分这是一一个shell脚本
- 先创建一个shell目录
```
[[email protected] ~]# clear
[[email protected] ~]# mkdir shell
[[email protected] ~]# cd shell/
[[email protected] shell]# ls
[[email protected] shell]# vi 01.sh

#!/bin/bash
echo "123"
w
ls
~                                                                                         
                                                                                   
~                                                                                         
:wq
[[email protected] shell]# vi 01.sh
```

- 执行方法有两种:
chmod +x 1.sh; ./1.sh
bash 1.sh  , sh 1.sh
```
[[email protected] shell]# sh 01.sh
123
 21:07:19 up 5 min,  2 users,  load average: 0.04, 0.33, 0.20
USER     TTY      FROM             [email protected]   IDLE   JCPU   PCPU WHAT
root     tty1                      21:02    4:39   0.02s  0.02s -bash
root     pts/0    192.168.202.1    21:03    7.00s  0.03s  0.01s w
01.sh
[[email protected] shell]# 
```
- 还有一种, 文件开头的意思就是意味着 接下来的命令是由这个文件来解析的。
```
[[email protected] shell]# chmod a+x 01.sh
[[email protected] shell]# ./01.sh
123
 21:09:48 up 7 min,  2 users,  load average: 0.14, 0.23, 0.18
USER     TTY      FROM             [email protected]   IDLE   JCPU   PCPU WHAT
root     tty1                      21:02    7:08   0.02s  0.02s -bash
root     pts/0    192.168.202.1    21:03    4.00s  0.03s  0.00s /bin/bash ./01.sh
01.sh
[[email protected] shell]# 
[[email protected] shell]# cat 01.sh
#!/bin/bash
echo "123"
w
ls
[[email protected] shell]# 

```
- bin/bash 其实就是 bin/sh
```
[[email protected] shell]# ls -l /bin/bash
-rwxr-xr-x. 1 root root 960392 8月   3 2016 /bin/bash
[[email protected] shell]# ls -l /bin/sh
lrwxrwxrwx. 1 root root 4 10月  5 22:18 /bin/sh -> bash
[[email protected] shell]# 

```

- 查看脚本执行过程,每个+表示一个步骤
```
[[email protected] shell]# sh -x 01.sh
+ echo 123
123
+ w
 21:17:01 up 14 min,  2 users,  load average: 0.02, 0.07, 0.12
USER     TTY      FROM             [email protected]   IDLE   JCPU   PCPU WHAT
root     tty1                      21:02   14:21   0.02s  0.02s -bash
root     pts/0    192.168.202.1    21:03    5.00s  0.05s  0.00s sh -x 01.sh
+ ls
01.sh
[[email protected] shell]# 
```
- 也可以用 sh -n 查看脚本的语法是否正确
- 没有输出,表示没有错误

```
[[email protected] shell]# sh -n 01.sh
[[email protected] shell]# 
```
- 修改一下文件测试一下错误
```
[[email protected] shell]# sh -n 01.sh
[[email protected] shell]# vi 01.sh

#!/bin/bash
echo "123"
w
ls
for i in `seq 1 10`
do 
 echo $i
~                                                                                         
                                                                                      
~                                                                                         
~                                                                                         
:wq

```
- 再执行下sh -n 看下
```
[[email protected] shell]# sh -n 01.sh
01.sh:行8: 语法错误: 未预期的文件结尾
[[email protected] shell]# 
```
- 改回来
```
[[email protected] shell]# vi 01.sh

#!/bin/bash
echo "123"
w
ls
~                                                                                         
~                                                                                         
~                                                                                         
                                                                                      
:wq
```
- 再监测就是没用问题
```
[[email protected] shell]# sh -n 01.sh
[[email protected] shell]# 
```

# 20.3 date命令用法
- date  在shell中用处非常大;对文件后缀增加一个时间,以便后期管理
- date +%Y-%m-%d, date+%y-%m-d 年月日
```
[[email protected] ~]# date
2017年 11月 20日 星期一 22:01:01 CST
[[email protected] ~]# 
```
- m 月,M 分钟 
```
[[email protected] ~]# date
2017年 11月 20日 星期一 22:01:01 CST
[[email protected] ~]# date +%Y
2017
[[email protected] ~]# date +%y
17
[[email protected] ~]# date +%m
11
[[email protected] ~]# date +%M
27
[[email protected] ~]# 
```
- 日期 d  大D 
```
[[email protected] ~]# date +%d
20
[[email protected] ~]# date +%D
11/20/17
[[email protected] ~]# 
```
- 日期,年月日 date +%Y%m%d
```
[[email protected] ~]# date +%Y%m%d
20171120
[[email protected] ~]# 
```
- 日期 date +%F
```
[[email protected] ~]# date +%F
2017-11-20
[[email protected] ~]# 
```
- 小时 ,分 ,秒   
- s 表示一个时间戳 表示 距离1970年1月1日0点0分到现在的 总共多少秒
```
[[email protected] ~]# date +%H
22
[[email protected] ~]# date +%s
1511188397
[[email protected] ~]# date +%S
22
[[email protected] ~]# date +%S
32
[[email protected] ~]# 
```
- 关于时间
- date +%T
- date +%H%M%S
```
[[email protected] ~]# date +%T
22:35:38
[[email protected] ~]# date +%H%M%S
223608
[[email protected] ~]# 
```
- h显示月份,
```
[[email protected] ~]# date +%h
11月
[[email protected] ~]# 
```
- 先把语言改成英文
```
[[email protected] ~]# LANG=en
[[email protected] ~]# date +%h
Nov
[[email protected] ~]# 
```
- 加上冒号 date +%H:%M:%S 等同于  date +%T
```
[[email protected] ~]# date +%H:%M:%S
22:42:38
[[email protected] ~]# date +%T
22:42:42
[[email protected] ~]# 
```
- 周 
- w 周几
- W 今年的第几周
```
[[email protected] ~]# date +%w
1
[[email protected] ~]# date +%W
47
[[email protected] ~]# 
```
- 显示日历cal
```
[[email protected] ~]# cal
    November 2017   
Su Mo Tu We Th Fr Sa
          1  2  3  4
 5  6  7  8  9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30

[[email protected] ~]# 
```
- date -d "+1 day" +%F 一天后
- date -d "-1 day" +%F一天前
- date -d "-1 month" +%F一个月前
- date -d "-1 min " +%F一分钟前

- date -d "-1 year " +%F 一年前

- 标记昨天的日期 date -d "-1 day"
```
[[email protected] ~]# date
Mon Nov 20 23:07:38 CST 2017
[[email protected] ~]# date -d "-1 day"
Sun Nov 19 23:07:46 CST 2017
[[email protected] ~]# 
[[email protected] ~]# date -d "-1 day" +%F
2017-11-19
[[email protected] ~]# 

```
- 上个月 date -d "-1 month"
```
[[email protected] ~]# date -d "-1 month" +%F
2017-10-20
[[email protected] ~]# 
```
- 上一年 date -d "-1 year"
```
[[email protected] ~]# date -d "-1 year" +%F
2016-11-20
[[email protected] ~]# date -d "-1 year"
Sun Nov 20 23:10:43 CST 2016
[[email protected] ~]# 
```
- 上一个小时  date -d "-1 hour"
```
[[email protected] ~]# date -d "-1 hour" +%T
22:11:43
[[email protected] ~]# 
```
- 时间戳 转换成具体的日期时间,也可以现在的时间转换成时间戳
```
[[email protected] ~]# date +%s
1511190759
[[email protected] ~]# 

[[email protected] ~]# date -d @1511190759
Mon Nov 20 23:12:39 CST 2017
[[email protected] ~]# 
[[email protected] ~]# date +%s -d "2017-11-20 23:12:39"
1511190759
[[email protected] ~]# 
```

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

20.1 shell脚本介绍 20.2 shell脚本结构和执行 20.3 date命令用法 20.4 shell脚本中的变量的相关文章

Shell脚本(脚本结构和执行方法,date命令用法,脚本中的变量)

Shell是什么 Shell是一种脚本语言,和传统语言C,Python...相比还是比较简单的. 可以使用逻辑判断,循环等语法 可以自定义函数 shell是系统命令的集合 shell脚本可以实现自动化运维,能大大增加我们的运维效率 Shell脚本结构和执行方法 1.开头必须要#!/bin/bash  解释器命令,下面的命令是通过哪一个解释器执行的 我们发现sh其实只是bash的软连接 [[email protected] shell]# ll /bin/sh lrwxrwxrwx. 1 root

20.1 shell脚本介绍 20.2 shell脚本结构和执行 20.3 date命令用法 20.

20.1 shell脚本介绍 20.2 shell脚本结构和执行 20.3 date命令用法 20.4 shell脚本中的变量 原文地址:http://blog.51cto.com/12058686/2104654

shell脚本介绍,shell脚本结构和执行方式,date命令的用法,shell脚本中的变量简介

笔记内容: 20.1 shell脚本介绍 20.2 shell脚本结构和执行 20.3 date命令用法 20.4 shell脚本中的变量 笔记日期:2017-11-21 20.1 shell脚本介绍 Shell Script,Shell脚本与Windows/Dos下的批处理相似,也就是用各类命令预先放入到一个文件中,方便一次性执行的一个程序文件,主要是方便管理员进行设置或者管理用的.但是它比Windows下的批处理更强大,比用其他编程程序编辑的程序效率更高,它使用了Linux/Unix下的命令

20.1 Shell脚本介绍;20.2 Shell脚本结构和执行;20.3 date命令用法;20.4 Shell脚本中的变量

20.1 Shell脚本介绍 1. shell是一种脚本语言 aming_linux blog.lishiming.net 2. 可以使用逻辑判断.循环等语法 3. 可以自定义函数 4. shell是系统命令的集合 5. shell脚本可以实现自动化运维,能大大增加我们的运维效率 20.2 Shell脚本结构和执行 1. 开头(首行)需要加: #!/bin/bash 2. 以#开头的行作为解释说明: 3. 脚本的名字以.sh结尾,用于区分这是一个shell脚本 4. 执行.sh脚本方法有两种:

20.1-4 shell脚本介绍 shell脚本结构和执行 date命令用法 shell脚本中的变量

20.1 shell脚本介绍20.2 shell脚本结构和执行20.3 date命令用法%w 星期几 %W今年的第几周cal是显示日历的时间戳可以相互查询 20.4 shell脚本中的变量 原文地址:http://blog.51cto.com/13450039/2104595

20.1 Shell脚本介绍;20.2 Shell脚本结构和执行;20.3 date命令用法;20.

20.1 Shell脚本介绍 1. shell是一种脚本语言  aming_linux  blog.lishiming.net 2. 可以使用逻辑判断.循环等语法 3. 可以自定义函数 4. shell是系统命令的集合 5. shell脚本可以实现自动化运维,能大大增加我们的运维效率 20.2 Shell脚本结构和执行 1. 开头(首行)需要加 : #!/bin/bash 2. 以#开头的行作为解释说明 : 3. 脚本的名字以.sh结尾,用于区分这是一个shell脚本 4. 执行.sh脚本方法有

shell脚本介绍,shell脚本结构和执行,date命令用法,shell脚本中的变量

Shell脚本介绍 shell是一种脚本语言 blog.lishiming.net(阿铭的博客,可以去里面找shell习题)可以使用逻辑判断.循环等语法可以自定义函数,减少重复代码shell是系统命令的集合shell脚本可以实现自动化运维,能大大增加我们的运维效率 Shell脚本结构和执行 开头需要加#!/bin/bash 以#开头的行作为解释说明 脚本的名字以.sh结尾,用于区分这是一个shell脚本写一个简简单的脚本#!/bin/bash#Linletao#2018-5-29echo llt

shell脚本介绍 shell脚本结构和执行 date命令用法 shell脚本中的变量

一.shell脚本介绍shell脚本要想写好,必须通过不断地去练习写才能写好,没有捷径要在我们拿到一个需求的时候有一个脚本的大致思路,想到需求怎么去实现shell脚本可以大大提高我们的工作效率二.shell脚本结构和执行[[email protected] ~]# mkdir shell //创建一个shell文件夹,存放实验的shell脚本[[email protected] ~]# cd shell/[[email protected] shell]# ls[[email protected

六十七、shell脚本介绍、shell脚本结构和执行、date命令用法、shell脚本中的变量

一.shell脚本介绍 shell是一种脚本语言  aming_linux  blog.lishiming.net 可以使用逻辑判断.循环等语法 可以自定义函数 定义函数的目的:为了简化,为了减少重复的代码. shell是系统命令的集合 shell脚本可以实现自动化运维,能大大增加我们的运维效率 二.shell脚本结构和执行 脚本示例: #!/bin/bash echo "123" w ls 开头需要加#!/bin/bash,这个脚本在当前机器执行能识别里面的命令,换一台机器也许就不能