原 shell脚本介绍, shell脚本

 shell脚本介绍:

Shell脚本结构和执行:

开头(首行)需要加: #!/bin/bash  这里是指文件使用的是bash语法,通过/bin/bash解释器来执行的。 

以#开头的行作为解释说明: 

脚本的名字以.sh结尾,用于区分这是一个shell脚本

执行.sh脚本方法有两种:

1先给.sh脚本添加x权限:
chmod +x 1.sh

.sh脚本的绝对路径回车:
/root/1.sh

2bash(bash=sh)执行.sh脚本:
bash 1.sh

查看脚本执行过程:
sh -x 1.sh

检测shell脚本的语法错误:
sh -n 1.sh

date命令用法:

1.命令格式:

date [参数]... [+格式]

2.命令功能:

date 可以用来显示或设定系统的日期与时间。

3.命令参数:

必要参数:

%H 小时(以00-23来表示)。 

%M 分钟(以00-59来表示)。 

%s 总秒数。起算时间为1970-01-01 00:00:00 UTC。 

%S 秒(以本地的惯用法来表示)。 

%d 日期(以01-31来表示)。 

%D 日期(含年月日)。 

%m 月份(以01-12来表示)。 

%w 该周的天数,0代表周日,1代表周一,异词类推。 

%Y 年份(以四位数来表示)。 

选择参数:

-d<字符串>  显示字符串所指的日期与时间。字符串前后必须加上双引号。 

-s<字符串>  根据字符串来设置日期与时间。字符串前后必须加上双引号。 

-u  显示GMT。 

--help  在线帮助。 

4.使用说明:

1.在显示方面,使用者可以设定欲显示的格式,格式设定为一个加号后接数个标记,其中可用的标记列表如下: % :  打印出 %:

%H : 小时(00..23)

%M : 分钟(00..59)

%s : 从 1970 年 1 月 1 日 00:00:00 UTC 到目前为止的秒数

%S : 秒(00..61)

%T : 直接显示时间 (24 小时制)

%X : 相当于 %H:%M:%S

%d : 日 (01..31)

%x : 直接显示日期 (mm/dd/yy)

%y : 年份的最后两位数字 (00.99)

%Y : 完整年份 (0000..9999)

2.在设定时间方面:

date -s //设置当前时间,只有root权限才能设置,其他只能查看。

date -s 20080523 //设置成20080523,这样会把具体时间设置成空00:00:00

date -s 01:01:01 //设置具体时间,不会对日期做更改

date -s “01:01:01 2008-05-23″ //这样可以设置全部时间

date -s “01:01:01 20080523″ //这样可以设置全部时间

date -s “2008-05-23 01:01:01″ //这样可以设置全部时间

date -s “20080523 01:01:01″ //这样可以设置全部时间

3.加减:

date +%Y%m%d         //显示前天年月日

date +%Y%m%d --date="+1 day"  //显示前一天的日期

date +%Y%m%d --date="-1 day"  //显示后一天的日期

date +%Y%m%d --date="-1 month"  //显示上一月的日期

date +%Y%m%d --date="+1 month"  //显示下一月的日期

date +%Y%m%d --date="-1 year"  //显示前一年的日期

date +%Y%m%d --date="+1 year"  //显示下一年的日期

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,可以直接使用$REPLY

5. 内置变量 $0, $1, $2… $0表示脚本本身,$1 第一个参数,$2 第二个 .... $#表示参数个数

6. 数学运算a=1;b=2; c=$(($a+$b))或者$[$a+$b]

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

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏小詹同学

Python 4 种不同的存取文件骚操作

前言:最近开始学习tensorflow框架,选修课让任选一种框架实现mnist手写数字的识别分类。小詹也就随着大流选择了 tf 框架,跟着教程边学边做,小詹用了...

1213
来自专栏人人都是极客

Linux 程序编译过程的来龙去脉

大家肯定都知道计算机程序设计语言通常分为机器语言、汇编语言和高级语言三类。高级语言需要通过翻译成机器语言才能执行,而翻译的方式分为两种,一种是编译型,另一种是解...

743
来自专栏深度学习之tensorflow实战篇

mysql、mongodb、python(dataframe).聚合函数的形式,以及报错解决方案

1、mysql select * from table_name group by name,id 有的时候执行下面语句报错sql_mode=only_ful...

2854
来自专栏散尽浮华

linux运维中的命令梳理(三)

----------文本操作命令---------- sed命令:文本编辑工具 sed是一个很好的文件处理工具,本身是一个管道命令,主要是以行为单位进行处理,可...

2138
来自专栏北京马哥教育

sed的基本用法详解

在Linux的世界中,有着一个文本三剑客的称呼,它们分别代表grep(文本过滤),sed(流编辑器),awk(gawk)(报告生成器)。 它们是强大的文本处...

2606
来自专栏天天

Ajax(20171102)

563
来自专栏Laoqi's Linux运维专列

Mysql指令select,update,insert,drop,truncate+MySQL数据库备份恢复

一、select: 1.1 选择db1中mysql库和user表: mysql> use db1 Database changed mysql> select ...

2708
来自专栏机器学习实践二三事

Sed命令的基本使用

sed介绍 粘贴一段wiki的介绍: sed (stream editor) is a Unix utility that parses and transfo...

1806
来自专栏程序员互动联盟

【答疑释惑】main函数的参数是哪里传递来的

int main(int argc, char *argv[]) 这个参数是哪里传递来的? C/C++语言中的main函数,经常带有参数argc,argv,如下...

2728
来自专栏BestSDK

是不是Bash编程老司机,看完这10条细节就知道了

Bash,作为大部分 Linux 发行版的出厂预设 Shell,因其晦涩难懂的语法设置,以及需要特别留心的编程细节,几乎成为 Linux 区别于其他操作系统的代...

3397

扫码关注云+社区