shells编程

shells脚本

1.shells 放在etc文件夹下
切换到etc下后使用	ll | grep shells可以看到shells文件夹

2.在家目录下创建shells文件夹同时创建hellow.sh文件
使用vim命令编辑文件

#!/bin/bash
echo "This is the first Linux shells"

3.运行文件(没有配置环境变量)

bash hellows.sh
或者sh hellow.sh

修改文件权限成为可执行文件

chmod u+x hellow.sh
./hellow.sh可以运行
hellow.sh不可以

配置环境变量

先配置环境变量
export PATH:$PATH=/root/shells
hellow.sh可以运行

4.数据类型
数据类型都为字符串,不需要加“ ”,但是两个字符间有空格需要“”或者’'引起来

A=5
echo $A		输出A的值
unset A		销毁A的值
readonly B=3  设置B变量只能读,不能unset
使用vim编译hellow.sh添加echo $D
然后 D=123456
./hellow.sh 不能打印123456
. hellow.sh 可以打印123456
使用export D后将D提升为系统变量

特殊变量 $n

touch paratmeter.sh
vim paratmeter.sh
#!/bin/bash
echo  '==========$n=========='
echo $1
echo $2
echo $3
./paratmeter.sh  aa bb cc
使用双引号"========$1========="
n是一个变量

$#获取传入参数的个数

vim parament.sh
#!/bin/bash
echo $1
echo $2
echo $3
echo '====$#========'
echo $#

$* 和 $@的相同与不同

$@,$*都可以输出传入的所有参数
$@是将每个参数当成独立的
$*是将每个参数当成一个整体

echo $?判断是否命令执行成功,返回0成功

使用运算符,下边的常用

echo $(((3+2)*5))
echo $[(3+2)*5]

判断

-lt < 	 -le <=
-eq =	 -gt >
-ge >=	 -ne!=

使用[ 1-le 2 ]

[ 1 -le 2]
echo $? 输出0为false

判断是否为可读文件,-r 可读 -f 是否为文件 -w 读 -e是否存在 -d目录
在这里插入图片描述
使用命令完成测试前先修改lt.sh的权限为u+x,只可以传一个参数,then前必须没有空格
在这里插入图片描述
测试
在这里插入图片描述
case选择
在这里插入图片描述
测试
在这里插入图片描述
for循环计算1+100
在这里插入图片描述
第二种for区别,当$* 和 $@不加引号时
在这里插入图片描述
在这里插入图片描述

测试可以传入多个参数
加引号“*”是当成整体
在这里插入图片描述

在这里插入图片描述
while循环计算1+…+99
在这里插入图片描述
read键盘录入
在这里插入图片描述
设置 -t 10 设置10秒后关闭键盘录入
在这里插入图片描述
查看文件路径,后面再加上.sh输出结果就可以去掉.sh
在这里插入图片描述
dirname 返回文件路径
在这里插入图片描述
自定义函数
在这里插入图片描述
在这里插入图片描述
和超过255后重新算,超过部分从0开始
Shells工具Cut切割在这里插入图片描述
配合管道符切在这里插入图片描述
切环境变量在这里插入图片描述切ifconfig
在这里插入图片描述
Awk
使用awk切割passwd中root的第7列,^表示以xxx开头,然后用//包裹起来在这里插入图片描述
使用awk切割passwd中root的第1列和第7列在这里插入图片描述
切割第1列和第7列,并在列头添加 user ,shells和列尾添加aaa,bbb在这里插入图片描述
将用户的id加1在这里插入图片描述
在这里插入图片描述
NR记录行数NF浏览的列数,NF表示被切开的列数(最后一列)在这里插入图片描述
使用awk切割ifconfig
在这里插入图片描述
使用awk匹配空行
在这里插入图片描述
在这里插入图片描述
Sort排序,已第三列数据为根据, -nrk为降序,nk 为升序在这里插入图片描述
Wc -l passwd 统计行数
Wc -w passwd 统计单词数(不准)
Wc -m passwd 统计字符数
Wc -c passwd 统计字节数
在这里插入图片描述
正则表达式
1.^xx 以xx开头的
2.Y$ 以y结尾的
3.^$ 匹配空行
4.R…x 表示以R开头,x为结尾中间有两个字符的所有行
5.101表示可以是没有或者有多个0,和*前的一个字符有关
6…*表式任意字符
7.特殊字符[6 ,8 ]表示 6或者8
8.[a-z]表示a-z的一个字符
9.[a-z]*表示匹配任意字符
10.[a-c,e-f]表示匹配a-c 或者e-f其中的任意字符
11.\使$等特殊符号失效
在这里插入图片描述
查看当前文件中内容含有love的文件的名称
在这里插入图片描述

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值