shell基础篇(3️⃣)

12 篇文章 0 订阅
5 篇文章 0 订阅

变量的赋值:

  1. 显示赋值
    示例:
Ip1=192.168.12.134
School=”Beijing okokok”
Today1=`date +%F`
Today2=”$(date +%F) ”
  1. Read从键盘读入变量值
Read 变量名
Read -p “提示信息:”变量名
Read -t 5 -p “提示信息:”变量名
Read -n 2 “变量名”			只让熟两个字符

示例:

#!/bin/bash
#read -p "你的姓名是: " name
#read -p "你的性别是: " sex
#read -p "你的年龄是: " age
#echo "你的姓名是:$name,性别:$sex,年龄:$age"

#read -p "输入你的姓名,性别,年龄[ e. g. zhansan m 20 ]" name sex age

#echo "你的姓名是:$name,性别:$sex,年龄:$age"

示例:

#!/bin/bash
back_dir1=/var/backup
read -p "请你输入你的备份的目录:" back_dir2
echo $back_dir1
echo $back_dir

定义或引用变量时注意事项:
“ ” --------------- 弱引用
‘’ --------------- - 强引用
单引号里面没有变量;
命令替换等价于$()反引号中的shell命令会被先执行
touch date +%F-%H:%M:S%_file1.txt
touch ( d a t e + (date +%F- (date+H:%M:%S)_file2.txt
df -h | grep ‘/$’ | awk ‘{print $4}’

disk_free1=` df -h | grep ‘/$’ | awk ‘{print $4}’`
disk_free2=$( df -h | grep ‘/$’ | awk ‘{print $4}’)

变量的运算:
1.整数运算
方法一: expr

expr 1+2
expr $num1 + $num2				+ - \* /  %

方法二:$(())

echo $(($num1+$num2))			+ - \* /  %
echo $((num1+num2))
echo $((5-3*2))
echo $((2**3))
sum=$((1+2)); echo $sum

方法三:$[ ]

echo $[5+2]							+ - \* /  %
echo $[5**2]

方法四:let

Let sum=2+3;echo $sum
Let i++;echo $i

2.小数运算

echo “2*4”|bc
echo “2^4”|bc
echo “scale=2;6/4”|bc 6除以4保留2位小数
awk ‘BEGIN{print 1/2}’
echo “print 5.0/2”| python

例子:
查看系统当前使用百分比
free -mh 人性化查看内存使用信息
答案:

vim mem_use.sh
#!/bin/bash
mem_used=`free -m | grep '^Mem:'|awk '{print $3}'`
mem_toal=`free -m | grep '^Mem:'|awk '{print $2}'`
mem_percent=$((mem_used*100/mem_toal))

echo "当前内存使用百分比: $mem_percent%"

列子2:
Ping 一个ip只ping5次
答案:

#!/bin/bash
ip=152.136.123.149
i=1
while [ $i -le 5 ]
do
        ping -c1 $ip &>/dev/null
        if [ $? -eq 0 ];then
                echo "$ip is up"
        fi
        let i++
done           

变量“内容”的删除和替换(拓展)
=内容的删除=

[root@localhost ping]# url=www.yyy.com.cn
[root@localhost ping]# echo ${#url} 获取变量的长度
14
[root@localhost ping]# echo ${url} 标准查看
www.yyy.com.cn
[root@localhost ping]# echo ${url#.} 从前往后,最短匹配
yyy.com.cn
[root@localhost ping]# echo ${url##
.} 从前往后,最长匹配,贪婪匹配
cn
[root@localhost ping]# echo ${url%.} 从后往前,最短匹配
www.yyy.com
[root@localhost ping]# echo ${url%%.
} 从后往前,最长匹配,贪婪匹配
www

索引及切片

[root@localhost ping]# echo ${url}
www.yyy.com.cn
[root@localhost ping]# echo ${url:0:5}
www.y
[root@localhost ping]# echo ${url:5:5}
yy.co
[root@localhost ping]# echo ${url:5}
yy.com.cn

=内容的替换=

[root@localhost ping]# echo ${url/y/n}
www.nyy.com.cn
[root@localhost ping]# echo ${url//y/n}
www.nnn.com.cn

=内容的替代=

[root@localhost ping]# unset var1
[root@localhost ping]# echo ${var1}
[root@localhost ping]# echo ${var1-aaaa}
aaaa
[root@localhost ping]# var2=111
[root@localhost ping]# echo ${var2-bbbb}
111
[root@localhost ping]# var3=
[root@localhost ping]# echo ${var3-cccc}
[root@localhost ping]# unset var1
[root@localhost ping]# unset var2
[root@localhost ping]# unset var3
[root@localhost ping]# var2=
[root@localhost ping]# var3=111
[root@localhost ping]# echo ${var1:-aaaa}
aaaa
[root@localhost ping]# echo ${var2:-aaaa}
aaaa
[root@localhost ping]# echo ${var3:-aaaa}
111
自己看看
[root@localhost ping]# echo ${var3+aaaa}
aaaa
[root@localhost ping]# echo ${var3:+bbbb}
bbbb
[root@localhost ping]# echo $(var3=cccc)
[root@localhost ping]# echo ${var3=cccc}
111
[root@localhost ping]# echo ${var3:=cccc}
111
[root@localhost ping]# echo ${var3?dddd}
111
[root@localhost ping]# echo ${var3:?dddd}
111

========================================================

${变量名-新的变量值}
变量没有被赋值:会使用“新的变量值”替代
变量有被赋值(包括空值):不会被替代

shell基础篇(4️⃣)

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值