Linux学习总结(五十七) shell脚本1

1 什么shell
shell是一种脚本语言
可以使用逻辑判断、循环等语法
可以自定义函数
shell是系统命令的集合
shell脚本可以实现自动化运维,能大大增加我们的运维效率
2 shell脚本结构和执行方法
开头需要加#!/bin/bash
以#开头的行作为解释说明
脚本的名字以.sh结尾,用于区分这是一个shell脚本
执行方法有两种
chmod +x 1.sh; ./1.sh
bash 1.sh
查看脚本执行过程 bash -x 1.sh
查看脚本是否语法错误 bash -n 1.sh
3 date命令用法

date +%F 年月日  2018-05-14  等价于 date +%Y-%m-%d
date +%T 时分秒  22:45:23    等价于 date +%H:%M:%S
date +%Y 四位表示的年份 2018
date +%y 两位表示的年份 18
date +%m 月份
date +%M  分钟
date +%d 日
date +%D 月日年  05/14/18
date +%H 时
date +%h 月份   5月
date +%M 分
date +%S 秒
date +%s 绝对时间戳  距离1970.1.1. 00:00:00 多少秒
date -d @1504620492  时间转换
date -d "+1day"  一天后
date -d "-1 day"  一天前
date -d "-1 month" 一月前
date -d "-1 min"  一分钟前
date +%w  星期几
date +%W  第几周

4 脚本中的变量
当脚本中使用某个字符串较频繁并且字符串长度很长时就应该使用变量代替
使用条件语句时,常使用变量 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]

原文地址:http://blog.51cto.com/12606610/2125091

时间: 2024-10-05 21:29:19

Linux学习总结(五十七) shell脚本1的相关文章

Linux学习第九节课-shell脚本编程

Linux第九节课 -------------------------------------------------------------------------------------------------------------------------------- 程序:算法+数据结构 数据:程序的核心 算法:处理数据的方式 程序编程风格 过程式:以指令为中心,数据服务于指令 对象式:以数据为中心,指令服务于数据 高级编程语言 编译:高级语言→编译器→机器代码→执行,例如c,c++等

Linux学习记录(四):Shell脚本

目录 Shell脚本是什么 如何运行Shell脚本 Shell脚本的一些简单语法 Shell脚本 Shell脚本(Shell script),是一种为shell编写的脚本程序.我们所说的shell通常是指shell脚本. 在终端中输入很多命令,我们想把这些命令写到一个文件中去,这时Shell就派上用场了. 如何运行Shell脚本 现有test.sh脚本如下: #!/bin/bash echo "Hello World" 方法一: 方法二: sh test.sh拓展名为sh,那么用sh解

Linux入门第五天——shell脚本入门(下)基础语法之调试debug

一.如何debug 1.通过sh命令的参数: sh [-nvx] scripts.sh 选项与参数: -n :不要执行 script,仅查询语法的问题: -v :再执行 sccript 前,先将 scripts 的内容输出到屏幕上: -x :将使用到的 script 内容显示到屏幕上,这是很有用的参数! 示例1:no news is good news [[email protected] tmp]# sh -n add1_100.sh [[email protected] tmp]# 示例2:

Linux入门第五天——shell脚本入门(下)基础语法之循环与调试

一.循环 1.不定循环 有两种形式: while [ condition ] <==中括号内的状态就是判断式 do <==do 是循环的开始! 程序段落 done <==done 是循环的结束 当 condition 条件成立时,就进行循环,直   到 condition 的条件不成立才停止 until [ condition ] do 程序段落 done 当 condition 条件成立时,就终止循环, 否则就持续 进行循环的程序段.

linux c程序中获取shell脚本输出的实现方法

linux c程序中获取shell脚本输出的实现方法 1. 前言Unix界有一句名言:“一行shell脚本胜过万行C程序”,虽然这句话有些夸张,但不可否认的是,借助脚本确实能够极大的简化一些编程工作.比如实现一个ping程序来测试网络的连通性,实现ping函数需要写上200~300行代码,为什么不能直接调用系统的ping命令呢?通常在程序中通过 system函数来调用shell命令.但是,system函数仅返回命令是否执行成功,而我们可能需要获得shell命令在控制台上输出的结果.例如,执行外部

Linux学习第五节课-标准I/O和管道

Linux学习第五节课 ------------------------------------------------------------------------------------------------------------------------------------------------------------------ 三十一.标准输入和输出 程序:指令+数据 读入数据:Input 输出数据:Output 打开的文件都有一个fd: file descriptor (文

Linux之进程管理及Shell脚本

使用!来调用过往命令 !! 重复执行上一条指令 !a 重复执行上一条以a为首的指令 !nubmer 重复执行上一条在history表中记录号码为number的指令 !-number重复执行前第number条指令 ailas abc='cd xxxxxxxxxxx/xxxxxxxx/xxxxxxxxxxxxx' unalias abc " "将一串字符当成字符串来看,可以转译特殊字符 ' '将一串字符当成字符串来看,无法转译特殊字符 ·能够返回命令执行的结果 echo `uname -a

Linux自动安装JDK的shell脚本

Linux自动安装JDK的shell脚本 A:本脚本运行的机器,Linux B:待安装JDK的机器, Linux 首先在脚本运行的机器A上确定可以ssh无密码登录到待安装jdk的机器B上,然后就可以在A上运行本脚本: $ ./install-jdk.sh B的IP or: $ ./install-jdk.sh "B的IP" "JDK的URI" 就可以在机器B上安装JDK.jdk使用的tar包需要用户自己设定DEFAULT_JDK_SRC=?,保证可以wget得到即可

linux学习之路之使用脚本来复制二进制程序和所需的库文件

首先介绍bash的特殊语法 ${parameter#*word} 其中parameter为变量,word为分隔符,表示从变量最边左字符开始到第一匹配到分隔符(word)之间的字符串都去掉 ${parameter##*word}:表示从变量最左边字符开始到最后一次匹配到该分隔符之间的字符串都去掉 注意:其中变量不要加$符号 当*在分隔符(word)前面时,表示从左开始匹配 当*在分隔符(word)后面时,表示从右开始匹配 ${parameter%word*}:表示从最右边字符开始到第一次匹配到的分

Linux问题:Crontab 执行shell脚本时相对路径的问题,不能识别。

问题描述:在linux中的直接执行shell脚本可以用相对路径找到文件,但是如果通过计划任务crontab执行shell脚本时,却不能通过相对路径找到文件! 例子: shell脚本文件代码~ #! /bin/sh Logfile = './1.txt'; date >> $Logfile; echo '------'; 直接执行shell脚本,可以在1.txt文件中看到执行结果,但是如果用crontab计划任务去执行,却在1.txt中看不到执行结果.换成绝对路径就可以,代码如下 #! /bin