Shell复习—第一天

知识点

1.用source执行脚本和用bash执行的区别是什么?
答:用source执行的脚本,变量会在父shell下生效,用.也是
	用bash执行的脚本,变量不会在父shell下生效

2.如何自定义环境变量
	普通变量:变量名=变量值
	环境变量:export 变量名=变量值

3.定义变量内容,不加引号、单引号、双引号、反引号结果由什么不同?该怎么用
	不加引号:适用于一般场景,不能带空格
	单引号:所见即所得
	双引号:解析双引号内的变量
	反引号:强制命令解析

4.在shell编程中,如果访问变量值,可以变量前加一个$符号

5.下列对shell变量FRUTT操作,正确的是 显示变量的值:echo $FRUTT

练习

1、请使用shell脚本打印下面语句中字符数不小于6的单词
I am giaogg and I like eating and sleeping

第一种方法:
[root@controller shell]# cat 1.sh 
#!/bin/bash

str='I am giaogg and I like eating and sleeping'
for i in $str

do
        echo $i | xargs -n1 | egrep "^[a-z]{6,}"
done

[root@controller shell]# sh 1.sh 
giaogg
eating
sleeping

第二种方法:
[root@controller shell]# vim 2.sh 
#!/bin/bash
str='I am giaogg and I like eating and sleeping'
for i in $str
do
        [ `echo $i|wc -L` -ge 6 ] && echo $i
done
2、写出shell脚本,通过传参的方式,传入以下内容,并打印下面语句中字符数不小于6的单词
I am giaogg and I like eating and sleeping
#传参方法 $1 $* $@等等
[root@controller shell]# cat 3.sh 
#!/bin/bash
for i in $*
do
        echo $i | xargs -n1 | egrep "^[a-Z]{6,}"
done
[root@controller shell]# sh 3.sh 'I am giaogg and I like eating and sleeping'
giaogg
eating
sleeping
3、使用脚本传参的方式实现整数的加、减、乘、除、取余、幂运算
[root@controller shell]# vim 4.sh 
#!/bin/bash

x=$1
y=$2

echo "$1+$2="`expr $1 + $2`
echo "$1-$2="$[$1-$2]
echo "$1*$2="`echo $1*$2|bc`
echo "$1/$2="`awk -vx=$x -vy=$y 'BEGIN{print x / y}'`

[root@controller shell]# sh 4.sh 2 3
2+3=5
2-3=-1
2*3=6
2/3=0.666667


升级版
[root@controller shell]# cat 5.sh 
#!/bin/bash

x=$1
y=$2

if [ $# -ne 2 ];then
        echo "Usage:sh $0 参数必须为2个数字 语法错误!"
        exit
fi

if [ $1 -gt $2 ];then
        echo "数值对比:$1 > $2"
elif [ $1 -eq $2 ];then
        echo "数值对比:$1 = $2"
else [ $1 -le $2 ]
        echo "数值对比:$1 < $2"
fi

echo "$1+$2="`awk -vx=$x -vy=$y 'BEGIN{print x + y}'`
echo "$1-$2="`awk -vx=$x -vy=$y 'BEGIN{print x - y}'`
echo "$1*$2="`awk -vx=$x -vy=$y 'BEGIN{print x * y}'`
echo "$1/$2="`awk -vx=$x -vy=$y 'BEGIN{print x / y}'`
[root@controller shell]# sh 5.sh 1 
Usage:sh 5.sh 参数必须为2个数字 语法错误!
[root@controller shell]# sh 5.sh 1 2 3
Usage:sh 5.sh 参数必须为2个数字 语法错误!
[root@controller shell]# sh 5.sh 1 2 
数值对比:1 < 2
1+2=3
1-2=-1
1*2=2
1/2=0.5
4、使用脚本变量传参的三种方式,写一个脚本,通过传参方式修改主机名和IP地址
[root@node3 shell]# cat ip.sh 
#!/bin/bash

hostnamectl set-hostname $1

sed -ri "s#^IPADDR=(.*)#IPADDR='$2'#g" /etc/sysconfig/network-scripts/ifcfg-ens32

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

不想敲代码的运维

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值