shell脚本--变量

1.自定义变量

定义变量: 变量名=变量值 变量名必须以字母或下划线开头,区分大小写 ip1=192.168.225.164
引用变量: $变量名 或 ${变量名}
查看变量: echo $变量名; "set"可以查看所有变量(包括自定义变量和环境变量)
取消变量: unset 变量名
作用范围: 仅在当前shell中有效

示例:
使用变量前。麻烦

vim ping.sh
#!/usr/bin/bash
ping -c1 192.168.100.10 &>/dev/null  && echo 192.168.100.10up || echo 192.168.100.10down

两个&&符号代表前面结果是正确是输出后面的 ||表达的是否则的意思 前面结果错误时输出
重复项特别多,改起来特别麻烦
使用变量后,简洁

vim ping.sh
#!/bin/bash
ip=192.168.100.10
ping -c1 $ip &>/dev/null  && echo "$ip  up" ||   echo "$ip  down"

显示赋值

变量值已经知道的
定义变量
定义命令执行的结果

time=`date +%F` (反撇)
time=$(date +%F)($小括号)
time="li   li"

隐式赋值(交互式变量)

read 从键盘读入变量值
read 变量名
read -p "提示信息: " 变量名
read -t 5 -p "提示信息: " 变量名 //-t 等待5秒,后超时
read -n 2 变量名 //-n 只记录几个字符

vim ping.sh
read -p "请输入您测试的IP地址:" ip
ping -c1 $ip   &>/dev/null  && echo   " $ip up" || echo   "$ip  down"

环境变量

定义环境变量: 方法一 export back_dir2=/home/backup 
							方法二 export back_dir1 将自		定义变量转换成环境变量
引用环境变量: $变量名 或 ${变量名}
查看环境变量: echo $变量名 env 例如env |grep 		back_dir2
取消环境变量: unset 变量名
变量作用范围: 在当前shell和子shell有效 !!!!!!!!!!!!!!!!!!!!!!!

位置变量和预定义变量

位置变量
命令 参数1 参数2 参数3 …9以后特殊定义
$1 $2 $3 $4 $5 $6 $7 $8 $9 ${10} …

*预先定义过的变量
$0 脚本名
$
所有的参数
$@ 所有的参数
$# 参数的个数
$$ 当前进程的PID
$! 上一个后台进程的PID
$? 上一个命令的返回值 0表示成功

定义或引用变量时注意事项:

1
" " 弱引用
’ ’ 强引用

[root@lwq ~]# school=1000phone
[root@lwq ~]# echo "${school} is good"		//脱去空格
1000phone is good
[root@lwq ~]# echo '${school} is good'		//脱去所有字符
${school} is good

2
``(反撇)优先执行

``(反撇) 命令替换 等价于 $() 反引号中的shell命令会被先执行
两种方法都行

[root@lwq ~]# touch `date +%F`_file1.txt 
[root@lwq ~]# touch $(date +%F)_file2.txt 

变量运算

  1. 整数运算
    方法一:expr

```yaml
expr 1 + 2
expr $num1 + $num2 + - \* / %

*是任意字符,使用\ 转义一下。
方法二:$(())

```powershell
echo $(($num1+$num2)) + - * / %
echo $((num1+num2))
echo $((5-3*2)) 
echo $(((5-3)*2))
echo $((2**3))		//(蜜)2的3次方
sum=$((1+2)); echo $sum

方法三:$[]

echo $[5+2] + - * / %
echo $[5**2]

方法四:let
let 表达式

let sum=2+3; echo $sum

let i++; echo $i
let ++i; echo $i

i++和++i的区别就是:
i++
:先引用,后增加
++i
:先增加后引用

小数运算:

yum install bc  -y
echo "2*4" |bc
echo "2^4" |bc
echo "scale=2;6/4" |bc
awk 'BEGIN{print 1/2}'
echo "print 5.0/2" |python

bc:交互运算器(计算器 要自己安装 yum install bc -y)
scale=2 保留小数点后面两位
awk和python做了解

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值