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命令优先执行。 |
|
来自: tycoondeng > 《LinuxShell》