【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
相关推荐
EricFRQ1 小时前
devops自动化容器化部署
运维·自动化·devops
白云~️2 小时前
uniappx 打包配置32位64位x86安装包
运维·服务器·github
在河之洲木水3 小时前
现代多核调度器的本质 调度三重奏
linux·服务器·系统架构
文牧之3 小时前
PostgreSQL的扩展 pgcrypto
运维·数据库·postgresql
程序员JerrySUN3 小时前
驱动开发硬核特训 · Day 22(下篇): # 深入理解 Power-domain 框架:概念、功能与完整代码剖析
linux·开发语言·驱动开发·嵌入式硬件
白总Server3 小时前
多智能体系统的中间件架构
linux·运维·服务器·中间件·ribbon·架构·github
未来会更好yes4 小时前
Centos 7.6安装redis-6.2.6
linux·redis·centos
二猛子4 小时前
Linux(Centos版本)中安装Docker
linux·docker·centos
浪裡遊5 小时前
跨域问题(Cross-Origin Problem)
linux·前端·vue.js·后端·https·sprint
Johny_Zhao5 小时前
OpenStack 全套搭建部署指南(基于 Kolla-Ansible)
linux·python·信息安全·云计算·openstack·shell·yum源·系统运维