shell脚本学习------变量
Posted leagueandlegends
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了shell脚本学习------变量相关的知识,希望对你有一定的参考价值。
------------恢复内容开始------------
一、自定义变量
变量:用一个固定的字符串表示一个不固定的内容
变量常见类型,shell变量如下4类
自定义变量
系统环境变量
位置参数变量
预先定义变量
1、定义变量 \'变量名=变量值\' 不许使用数字命名,不许使用\'-\'命名
2、引用变量 \'变量名 或 ${变量名}\'
3、查看变量 \'echo $变量名\' set显示所有变量,包括自定义变量和环境变量
set | grep a
4、取消变量 \'unset 变量名\' 变量作用范围:仅在当前shell脚本中有效
数值运算:
a=1
b=2
c=$a+$b
d=$a+$b
echo $c|bc
echo $d
运行结果:
输出变量:首先ifconfig的参数内容如下:
输出特定的行变量
#!/usr/bin/bash
RX= ifconfig lo | grep "RX"
echo $RX
如果将变量变为字符串
#!/usr/bin/bash
RX2="ifconfig lo | grep RX"
echo $RX2
此时会当作字符串输出
如果输出变量
#!/usr/bin/bash
RX3=$(ifconfig lo | grep "RX")
echo $RX3
脚本示例:
#!/usr/bin/bash
ping -c1 192.168.56.11 &>/dev/null && echo "ip 192.168.56.11 ok"||echo "ip 192.168.56.11 error"
这段代码的意思为ping -c1 192.168.56.11,然后将执行输出结果丢弃,如果成功则打印ip 192.168.56.11 ok,否则打印ip 192.168.56.11 error,执行结果如下
我们可以使用变量改进
#!/usr/bin/bash
IP=192.168.56.11
ping -c1 ${IP} &>/dev/null && echo "ip ${IP} ok"||echo "ip ${IP} error"
执行结果如下:
二、系统环境变量
1、定义环境变量 \'export export变量,将自定义变量转换成环境变量\',定义环境变量时,变成公共基础模块
export IP=\'192.168.0.1\' echo $IP
2、引用环境变量 \'$变量名 或 ${变量名}\'
3、查看环境变量 \'echo $变量名 env|grep Name\'
4、取消环境变量 \'unset 变量名\'
5、变量作用范围 \'在当前shell和子shell有效\'
echo $HOME echo $UID
使能project7.sh的变量,在project8.sh
加载系统环境变量
source /etc/init.d/functions
project7.sh
#!/usr/bin/bash IP=192.168.56.11 ping -c1 ${IP} &>/dev/null && echo "ip ${IP} ok"||echo "ip ${IP} error"
project8.sh
#!/usr/bin/bash source ./project7.sh echo $UID echo $PATH echo $IP
执行结果如下:
#!/usr/bin/bash ping -c1 $IP $>/dev/null if [ $? -eq 0 ];then echo -e "\\033[32m ip $IP is OK! \\033[0m" else echo -e "\\033[31m ip $IP is Err! \\033[0m" fi
三、位置参数变量
脚本参数传值:\'$1 $2 $3 $4 $5 $6 $7 $8 $9 $10\'
#!/usr/bin/bash IP=$1 ping -c1 $IP>/dev/null if [ $? -eq 0 ];then echo "$1 is OK" else echo "$1 is Err!" fi
执行结果如下,带参数执行:
read读取参数
#!/usr/bin/bash read -p "Ples is Ping Network IP:" ip ping -c1 $ip &>/dev/null
if [ $? -eq 0 ];then echo "$ip is OK" else echo "$ip is Err" fi
执行结果:
四、预先定义变量
\'$0\' 脚本名
\'$*\' 所有的参数
\'$@\' 所有的参数
\'$#\' 参数的个数
\'$$\' 当前进程的PID
\'$1\' 上一个后台进程的PID
\'$?\' 上一个命令的返回值为0表示成功
------------恢复内容结束------------
以上是关于shell脚本学习------变量的主要内容,如果未能解决你的问题,请参考以下文章