1.shell执行方式
测试脚本
vim file1
echo 'hello 2024'
read -p '请输入' name
echao 'hh,$name'
执行1
bash file1
执行2
sh file1
执行3
. file1
执行4
source file1
1和2的方式,是子shell
3和4的方式,是本shell
bash是进入新的命令 这时候退出edit是退出这个新的命令 而不是退出系统
准备环境测试
cim bash.sh
#!/usr/bin/bash
cd /home
ls
一种执行方式测试
.bash.sh
2.变量
定义变量:变量名=变量值
引用变量:$变量名 或 ${变量名}
查看变量: echo $变量名 或 echo "$变量名" 或者 echo ${变量名}
"set"可以查看所有变量(包括自定义变量和环境变量)
set | grep 变量名 //查看变量 过滤
set | grep name
取消变量:unset 变量名 删除变量
unset 变量名
unset name
定义:
name="yqq"
$name //yqq
name=yqq
a=123
a="$a"456 或者 a=${a}456 //a=$a456 错误没有变量$a456
$a // 123456
错误定义:
变量名不能以数字开头
等号左右两侧不能有空格
变量的值如果有空格,必须用引号包含
定义或引用变量时注意事项
""弱引用
''强引用 里面的变量会当成字符串处置
``优先执行的变量
2.1自定义变量
示例1
编写测试主机在线的脚本,当主机在线提示在线,当主机不在线提示不在线。
vim ping.sh
ping -c 1 192.168.100.1 &> /dev/null && echo 192.168.100.1up
|| echo 192.168.100.2down
chomd +x ping.sh //授权
bask ping.sh // up 在线
&&和川是三目表达式
注释&&前面的命令成功。执行后面的命令
||前面的命令失败。执行后面的命令
完善脚本 ip设置为变量
vim ping.sh
#!bin/bash
ip=192.168.100.1
ping -c 1 $ip &> /dev/null && echo "$ip up" || echo "$ip down"
完善脚本 ip为用户输入的变量
vim ping.sh
read -p "请输入你要测试的ip" ip
ping -c 1 $ip &> /dev/null && echo "$ip up" || echo "$ip down"
2.2整数运算
方法1:expr +加 -减 \*乘(*是任意字符,使用\转义一下。) /除 %取余
expr 1 + 2 //3
num1=10
num2=10
expr $num1 + $num2 //20
expr $num1 - $num2 //0
expr $num1 \* $num2 //100
示例:运算学员的成绩总分
vim avg.sh
#!bin/bash
read -p "请输入第一门成绩" num1
read -p "请输入第二门成绩" num2
echo -n "总成绩"
expr $num1 + $num2
chomd -x avg.sh
方法2:$(())
echo $(($num1+$num2))
echo $((5-3*2))
echo $((2**3)) //蜜 2的3次方
方法3:$[]
echo $[5+2] + = * / %
echo $[5**2]
方法4: let
let sum=2+3;echo sum