【shell 学习一】shell执行方式以及变量(自定义变量、整数运算)定义

1.shell执行方式

javascript 复制代码
测试脚本
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.变量

javascript 复制代码
定义变量:变量名=变量值

引用变量:$变量名  或 ${变量名}


查看变量: 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自定义变量

javascript 复制代码
示例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整数运算

javascript 复制代码
方法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
相关推荐
深蓝海拓2 分钟前
PySide6从0开始学习的笔记(一) 学前班
笔记·学习
峥嵘life3 分钟前
Android16 EDLA 认证测试CTS问题分析解决
android·java·服务器
学习&笔记3 分钟前
MTK(系统篇)user版本无法使用setenforce 0命令关闭selinux权限
linux·运维·服务器
Bdygsl30 分钟前
Linux(8)—— 进程优先级与环境变量
linux·运维·服务器
EveryPossible34 分钟前
优先级调整练习1
大数据·学习
逐辰十七35 分钟前
FreeRTOS 中断管理 (Chapter 17) 核心学习大纲
学习
another heaven35 分钟前
【软考 磁盘磁道访问时间】总容量等相关案例题型
linux·网络·算法·磁盘·磁道
吕了了44 分钟前
87 Windows 系统安装的本质是什么?
运维·windows·电脑·系统
智行众维1 小时前
【用户心得】SCANeR™Studio学习笔记(六):人因工程Pack——一站式搞定驾驶模拟的多模态数据同步
笔记·学习·自动驾驶·汽车·仿真·scaner·人因工程
kissgoodbye20121 小时前
cadence学习之基础知识
网络·学习