Shell脚本中编程和变量的示例分析
admin
2023-03-31 01:41:23
0

一.Shell 脚本的概述

Shell脚本中编程和变量的示例分析

二.Shell的作用

Shell脚本中编程和变量的示例分析

三.写第一个Shell脚本

1.写一个脚本(到BOOT目录,查看当前位置,以长格式友好显示VML开头的所有文件)

[root@localhost ~]# vim aaa.sh "随意编一个空文件以.sh为结尾"

/bin/bash  "开头声明,固定格式”
一个脚本  "描述性信息可加可不加"
cd /boot/        

pwd
ls -lh vml*

~                                                                                       
~

2.给我们的脚本加上执行权限,看一下结果

[root@localhost ~]# chmod +x aaa.sh

[root@localhost ~]# ./aaa.sh   //执行脚本,这是我们最常用的方式
/boot
-rwxr-xr-x. 1 root root 5.7M 8月  10 00:26 vmlinuz-0-rescue-cc65aecf945d4dde800fe3e29ee6edbc
-rwxr-xr-x. 1 root root 5.7M 8月  23 2017 vmlinuz-3.10.0-693.el7.x86_64

3.重定向符号" > "   管道符号"  |  "

" > " :把左侧的命令结果重定向另一个文件或目录

[root@localhost opt]# touch abc.tt abd.txt
[root@localhost opt]# ls
abc.tt  abd.txt  rh
[root@localhost opt]# tar czvf test.tar.gz *.txt > test2.txt
[root@localhost opt]# ls
abc.tt  abd.txt  rh  test2.txt  test.tar.gz
[root@localhost opt]# cat test2.txt
abd.txt
[root@localhost opt]#

"  |  " :把左侧的命令结果,作为右侧命令的处理对象

统计所有磁盘分区的占用率

[root@localhost opt]# df -hT
文件系统       类型      容量  已用  可用 已用% 挂载点
/dev/sda2      xfs        10G  3.8G  6.3G   38% /
devtmpfs       devtmpfs  898M     0  898M    0% /dev
tmpfs          tmpfs     912M     0  912M    0% /dev/shm
tmpfs          tmpfs     912M  9.1M  903M    1% /run
tmpfs          tmpfs     912M     0  912M    0% /sys/fs/cgroup
/dev/sdb1      xfs        20G   33M   20G    1% /mnt/sdb
/dev/sda5      xfs        10G   37M   10G    1% /home
/dev/sda1      xfs       6.0G  174M  5.9G    3% /boot
tmpfs          tmpfs     183M   12K  183M    1% /run/user/42
tmpfs          tmpfs     183M     0  183M    0% /run/user/0

磁盘在第一列  占用率在第5列

[root@localhost opt]# df -h | grep "dev/sd*" | awk '{print $1,$5 }'
/dev/sda2 38%                                          
tmpfs 0%
/dev/sdb1 1%
/dev/sda5 1%
/dev/sda1 3%
[root@localhost opt]#

4.变量的作用和类型

Shell脚本中编程和变量的示例分析

预定义变量:
变量名
作用
$0
当前脚本的名字
$n
传递给脚本或者函数的参数,n表示第几个参数
$#
传递给脚本或函数的参数个数
$*
传递给脚本或函数的所有参数
$@
传递给脚本或者函数的所有参数
$$
当前shell脚本进程的PID
$?
函数返回值,或者上个命令的退出状态

5.定义一个新的变量,查看变量的值

变量名=变量值
变量名以字母或下划线开头,区分大小写

[root@localhost opt]# Producht=Python
[root@localhost opt]# Version=2.7.13
[root@localhost opt]# echo $Producht
Python
[root@localhost opt]# echo $Producht $Version
Python 2.7.13
[root@localhost opt]#

6.赋值使用各种引号,键盘输入内容为变量赋值

Shell脚本中编程和变量的示例分析

[root@localhost ~]# vim c.sh

#!/bin/bash
read -p "请输入一个整数" num1
read -p "请输入第二个整数" num2
~                               
[root@localhost ~]# chmod +x c.sh
[root@localhost ~]# ./c.sh
请输入第一个整数21
请输入的二个整数232

7.整数变量的运算

Shell脚本中编程和变量的示例分析

8.位置变量

Shell脚本中编程和变量的示例分析

[root@localhost ~]# vim .sss.sh

#!/bin/bash
read -p "第一个位置变量$1"
read -p "第二个位置变量$2"
sum=`expr $1 + $2`
echo "整数之和为$sum"
~                        
[root@localhost ~]# ./.sss.sh 23 45
第一个位置变量23
第二个位置变量45
整数之和为68
[root@localhost ~]# ./.sss.sh 64 120
第一个位置变量64
第二个位置变量120
整数之和为18

9.环境变量

Shell脚本中编程和变量的示例分析

[root@localhost ~]# echo $PWD
/root
[root@localhost ~]# echo $HOME
/root
[root@localhost ~]# echo $USER
root
[root@localhost ~]# echo $SHELL
/bin/bash

10.预定义变量

Shell脚本中编程和变量的示例分析

#!/bin/bash
read -p "第一个位置变量$1"
read -p "第二个位置变量$2"
sum=`expr $1 + $2`
echo "整数之和为$sum"
echo "脚本名称$0"
echo "详细数字$*"
echo "参数的个数$#"
~                                                                                       
~
[root@localhost ~]# ./.sss.sh 64 120
第一个位置变量64
第二个位置变量120
整数之和为184
脚本名称./.sss.sh
详细数字64 120
参数的个数2

相关内容

热门资讯

特朗普下令不打了,美国的“余粮... 可以说戛然而止,快得让很多人都无法适应。前两周,每一天美国都要打击伊朗一通。就在7月24日白宫会议前...
穆杰塔巴最新表态:支持黎真主党 △伊朗最高领袖穆杰塔巴·哈梅内伊(资料图)当地时间7月26日晚,伊朗最高领袖穆杰塔巴·哈梅内伊对黎巴...
美军瘫痪一艘驶向伊朗的油轮,特... 美国总统特朗普虽下令暂停打击伊朗,但美军仍在执行对霍尔木兹海峡的封锁任务。针对美军瘫痪一艘驶向伊朗油...
“小牌大耍”的底气到底是哪里来... 澎湃首席评论员 李平这两天,“艺人李权哲乘高铁占座事件”在网上引发热议,该艺人参加的活动主办方曾发布...
越南籍船舶南海遇险沉没,中方已... 据凤凰卫视报道,一艘越南船舶7月24日夜间在越南庆和以东220海里附近遇险沉没,船上共62名越南籍人...
李权哲占座、蒙面、装死:娱乐圈... 你买了一张高铁一等座的票,找到自己的位置,18A。有人坐着。你拿出手机看了眼购票记录——没错,18A...
杭州景区咖啡店闯入1条幼蛇,仅... 夏天气温高、湿度大,蛇类活动进入高峰期,千万别被“小蛇无害”的刻板印象骗了!有些幼蛇看着迷你可爱,实...
AI开源公开信签署企业增至50... IT之家 7 月 26 日消息,英伟达、微软、IBM、Meta 等 25 家美国科技企业本周(7 月...
南阳快手短视频代运营企业的服务... 在短视频平台快速发展的背景下,企业通过快手等渠道进行内容运营已成为常见的市场动作。对于希望借助短视频...
普通人该如何跟上科技发展的步伐 这个被称作科技的词汇, 听起来既有宏大之感, 又颇为遥远, 好似仅仅归属于在实验室里专心致志钻研的科...