Linux shell script

目录

1.shell script简介

1.1 shell script能做什么

1.2 shell script优点

1.3 shell script额外注意事项

1.4 脚本的执行

1.5 利用date进行文件建立

1.6 通过bc -l计算带小数的运算

2 shell script支持的语法

2.1 shell script默认变数与偏移shift

2.2 判断式test 与 [  ]

2.3 条件判断式 if...then

2.4 case...esac判断

2.5 function 功能

2.6 while...do...done,until...do...done不定循环

2.7 for var in ... do ...done固定循环

2.8 shell script 追踪


1.shell script简介

1.1 shell script能做什么

shell script是利用shell的功能锁写的一个程序,这个程序使用纯文本文件,将一些shell的语法与指令写在里边,搭配正规表示法,管线命令与数据流重导向等功能,以达到我们所想要的处理目的.

1.2 shell script优点

  1. 自动化管理重要依据
  2. 追踪与管理系统的重要工作
  3. 简单入侵检测功能
  4. 连续指令单一化
  5. 简易的数据处理
  6. 跨平台支持与学习历程较短

1.3 shell script额外注意事项

  1. 指令的执行时自上而下,从左到右的分析与执行
  2. 指令,选项,参数之间的多余空白会被忽略
  3. 空白行会被忽略,包括[tab]开头的空白行
  4. 如果读取到[Enter]就尝试执行该行(或该串)命令
  5. 如果命令太多可以用\[Enter]来延伸至下一行
  6. [#]是批注,任何#开头的行都会被忽略,除了shell说明,#!/bin/bash.表示用/bin/bash这个shell

1.4 脚本的执行

直接下达命令,文件必须有rx权限

  • 绝对路径
  • 相对路径
  • 变量,将脚本放到PATH指定目录中

以bash程序来执行

  • bash *.sh
  • sh *.sh
  • source执行,以上执行脚本方法不会把脚本中的变量传回到整个bash环境中,用 source *.sh执行脚本会使变量在整个bash中都可用

1.5 利用date进行文件建立

1.6 通过bc -l计算带小数的运算

2 shell script支持的语法

2.1 shell script默认变数与偏移shift

  • $0:脚本名称
  • $1,$2...$n:第一个参数第二个参数...第n个参数(按顺序)
  • $#:参数个数
  • $@:代表[ "$1","$2"..."$n" ]
  • $*:代表[ "$1c$2c$3c...c$n" ],c是分割符,默认是空格

shift n
n是数字,不写默认是1,偏移量代表去除前n个参数,再重新作为新参数,如:
*.sh 1 2 3 4 5 6 7($1=1,$2=2...$7=7)   shift 后 $1=2,$2=3...$6=7,shift 3后 $1=5,$2=6,$3=7

2.2 判断式test 与 [  ]

test 与 [] 用法选项基本相同相同,不同的是

语法不同

  • test:test -[选项] 目录/文件 
  • [  ] :[ -选项 "文件/目录" ]
  • [  ]每个组件都要用空格隔开
  • 在中括号内的变数最好都用双引号隔开
  • 在中括号内的常数最好用单引号或双引号隔开

[]常用在if...then中

 





在bash的判断式中,一个等号与两个等号是一样的,但习惯上一般用两个等号,而一个等号用在变量的赋值上

在条件判断式中,复杂的判断
[ "${aa}" == "aa" -o "${aa}" == "bb" ]与[ "${aa}" == "aa" ] || [ "${aa}" == "bb" ] 是一个意思变量$aa等于"aa"或"bb"
[ "${aa}" != "aa" -a "${aa}" != "bb" ]与[ "${aa}" != "aa" ] && [ "${aa}" != "bb" ]是一个意思变量$aa不等于"aa"也不等于"bb"

2.3 条件判断式 if...then



2.4 case...esac判断


变量的取得方式

  • 用默认变量$1...$n
  • 用read命令获取

2.5 function 功能

如果用function功能,必须在用之前定义好

function 也有内置变量,与shell script类似,

  • $0:function名称
  • $1,$2...$n:第1个参数,第2个参数...第n个参数

在调用的时候把参数给上,如function a(){}  用的时候,a 1 2 3.

2.6 while...do...done,until...do...done不定循环

while...do...done是满足条件就执行
until...do.done正好相反,满足条件后结束循环

2.7 for var in ... do ...done固定循环

第n次循环${var} 等于第n个参数,那个con1,con2...conn用cut或awd分割后使用很实用

for循环的另一种写法


2.8 shell script 追踪

 

 

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值