Shell变更的赋值方式有五种:直接赋值、从键盘读取赋值、使用命令行参数赋值、利用命令的输出结果赋值和从文件中读入数据赋值。
1.直接赋值:第一次使用变量时,实际上就是给变更赋值。
直接赋值格式:变量名=变量值
举例:
a=3
意思是将赋值运算符(=) 右侧的变量值(3),赋给左侧的变量(a)
2.从键盘读取赋值:就是从键盘读入输入的内容来赋值。
从键盘读取赋值格式:read -p [提示信息]:[变量名]
举例:
# cat ping03.sh
#!/bin/bash
read -p "Input IP:" ip
ping -c1 $ip &>/dev/null # 将ping 的结果放在/dev/null (称为垃圾箱)
if [$? ==0 ] ;then # $?的意思是上一条命令的返回值,如果返回值为0,表示主机正常;否则表示宕机
echo "Host $ip is OK!"
else
echo "Host $ip is Fail!"
fi
# chmod a+x ping03.sh
# ./ping03/sh
Input IP: 192.168.1.10
Host 192.168.1.10 is OK!
3.使用命令行参数赋值:直接在命令行后面跟参数,系统用$1来调用第一个参数,用$2来调用第二个参数,这种赋值方法适用于参数经常变化且不需要交互的情况。
举例:使用命令行参数赋值
# cat test.sh
echo $1 $2
# chmod a+x test.sh
# ./test.sh qf tianyun
4.利用命令和输出结果赋值:在shell程序中,可以将一个命令的输出结果当作变量的值,不过需要赋值语句中使用反向单引号。这种赋值方法可以直接处理上一个命令产生的数据。
举例:利用命令的输出结果赋值
# cmd=`date +%F`
# echo $cmd
2022-06-12
# echo `date +%F`.tar.gz
2022-05-12.tar.gz
5.从文件中读取数据赋值:直接把相应的数据写入文件中,通过脚本中的命令把文件中的数据读取到脚本程序中使用。
通常是通过while循环一行一行读入数据,即每循环一次,就从文件中读入一行数据,直到读取到文件的结尾。
举例:从文件中读取数据赋值
# vim file.sh
#!bin/bash
ls *.sh >execfiles
while read LINE
do
echo $LINE
done <execfile
在shell中,定义或引用变量时,要注意:
一、要想显示变量的值,使用双引号;
二、单引号里的内容,原样输出;
三、反引号里的内容,shell命令优先执行。
联系客服