shell编程第三天(运算)

阅读 75

2023-05-18


shell编程第三天(运算)

整数运算

expr

语法:expr 数字1 符号 数字2 expr可以让整数进行加减乘除和取余

expr 1 + 2

编写一个脚本计算两门的成绩总和

#!/bin/bash
read -p "请输入您的第一门成绩:" number1
read -p "请输入您的第二门成绩:" number2
echo -n "总成绩是:"
expr $number1 + $number2

shell编程第三天(运算)_bash

$(())

$(())有运算能力,可以进行加减乘除和取余的运算,它的语法是:

$((整数1 符号 整数2))

echo $((1 + 2))

3

$[]

语法:$[整数1 符号 整数二]

echo $[2 + 3]

5

let

let关键字做变量运算,

let sum=2+3;echo $sum

5

let可以做自增操作

let i++;echo $i

此时的i++就相当于i=i+1

小数运算

安装一个小数运算的工具

yum install -y bc

将数字输出在屏幕中并用管道交给bc运算,最后得出结果

echo "2 + 4" | bc

6

bc是一个交互运算器,支持浮点运算。
scale=3表示小数点后保留三位小数

echo "scale=3;6/4" | bc

1.500

也可以使用bc命令进行计算

shell编程第三天(运算)_bash_02

环境变量

自定义变量是只在当前的shell有效,如果要想别人用的话,需要加入环境变量确保其他人也可以用

export back_dir2=/home/backup# 声明环境变量
export back_dir1# 将自定义变量转换成环境变量

想让变量在当前用户登录后一直的生效,可以将变量放在~/.bash_profile

vi ~/.bash_profile

如果想让变量,在所有用户登陆后一直生效,可以讲变量放置在/etc/profile中

vi /etc/profile

比如系统中也有一些环境变量

echo $USER

查看系统的环境变量

env

位置变量和预定义变量

位置变量的语法:命令 参数1 参数2 参数3..........9以后特殊定义

$0 $1 $2 $3 $4 $5 $6 $7 $8 $9....

vi ping3.sh

shell编程第三天(运算)_bash_03

. ping.sh 192.168.83.163 192.168.83.173

shell编程第三天(运算)_shell_04

$0 # 表示脚本的名称
$* # 所有的参数
$# # 参数的个数
$? # 作为上一个程序的返回值(0代表的是成功,非0代表的是失败)
$$ # 程序的PID

$? # 作为上一个程序的返回值(0代表的是成功,非0代表的是失败)

shell编程第三天(运算)_环境变量_05

$$# 程序的PID

现在使用的是远程登录centos7,所以应该是pts

shell编程第三天(运算)_shell_06

shell编程第三天(运算)_bash_07


进程是有关系的可以使用pstree(进程树)进行查看

安装程序

yum -y install psmisc

pstree

shell编程第三天(运算)_bc_08

总结:

位置变量就是$1 $2 $3
位置变量是预先定义过了的
用户使用时,必须要携带参数
位置变量不止程序设置的唯一方法,比如read也是可以的

练习

编写一个自动创建用户并配置密码的脚本文件

vi useradd.sh

#!/bin/bash
read -p "请输入用户名" user
read -p "请输入用户的密码" password
useradd $user
echo "$password" | passwd --stdin $user &> /dev/null
echo "$user已经创建,$user的密码是$password"


精彩评论(0)

0 0 举报