原 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 条评论
登录 后参与评论

相关文章

来自专栏老马说编程

(67) 线程的基本协作机制 (上) / 计算机程序的思维逻辑

上节介绍了多线程之间竞争访问同一个资源的问题及解决方案synchronized,我们提到,多线程之间除了竞争,还经常需要相互协作,本节就来介绍Java中多线程协...

2066
来自专栏Golang语言社区

Go性能优化小结

做过C/C++的同学可能知道,小对象在堆上频繁地申请释放,会造成内存碎片(有的叫空洞),导致分配大的对象时无法申请到连续的内存空间,一般建议是采用内存池。Go ...

2193
来自专栏Python中文社区

一种Python全局配置规范以及其修改

專 欄 ❈丁果,Python中文社区作者。对django、pyqt、opencv、tornado感兴趣。 GitHub:https://github.com/...

2649
来自专栏Vamei实验室

纸上谈兵: 队列 (queue)

作者:Vamei 出处:http://www.cnblogs.com/vamei 欢迎转载,也请保留这段声明。谢谢! 队列(queue)是一个简单而常见的数据结...

1976
来自专栏高爽的专栏

Java线程(九):Condition-线程通信更高效的方式

        接近一周没更新《Java线程》专栏了,主要是这周工作上比较忙,生活上也比较忙,呵呵,进入正题,上一篇讲述了并发包下的Lock,Lock可以更好的...

2580
来自专栏JavaEE

Java面试题 - 01

其实对于大多数刚入门的初级程序员来说,写代码都还停留在复制粘贴修改阶段(我也一样),虽然可以复制粘贴的时候看上去很厉害了,其实都是假象。面试的时候可能面试官随便...

1143
来自专栏崔庆才的专栏

你还在用 os.path?快来感受一下 pathlib 给你带来的便捷吧!

pathlib 是Python内置库,Python 文档给它的定义是 Object-oriented filesystem paths(面向对象的文件系统路径)...

1494
来自专栏林欣哲

Redis知识点速查

NoSQL概述 为什么需要NoSQL 高并发读写 海量数据的高效率存储和访问 高可扩展性和高可用性 NoSQL数据库分类 键值存储。Redis 列存储。HBas...

36011
来自专栏企鹅号快讯

《数据库系统概念》12-文件的组织

一个数据库被映射到多个不同的文件,这些文件由底层的操作系统来维护。每个文件分成定长的存储单元,称为块(bolck),块是存储分配和数据传输的基本单元。数据库默认...

2689
来自专栏ImportSource

并发编程-加锁机制

本文翻译自《Java Concurrency ?In ?Practice》,定期放送 ,让你利用碎片时间悄悄的看了一本书! 我们的文章是系列的。所以先请允许...

3088

扫码关注云+社区