read命令的工作机理是:从标准输入中读取一行,并把输入行的每个字段的值指定给shell变

read命令,

{ read line2

read line4

} < /etc/fstab

echo $line2

echo $line4

它会读取一行,line2是第一行的内容,line4是第二行的内容?不是这样的

看脚本

104824519.jpg

如果不加中间的echo的话

line22 ,line222中都是第一行的数据,

如果加上echo,line22是第一行的数据,line222是第二行的数据



Linuxread命令可以用来接收键盘的标准输出,或者是文件描述符的输出。

比如脚本:read.sh


#!/bin/bash


echo -n "Enter your what:"


read what

echo "hello $what ,welcome"

exit 0



执行结果:

[monitor@localhost ~]$ ./read.sh

Enter your what:what

hello what ,welcome


echo –n 的作用是不换行)


read会读取键盘的标准输出,把这个值保存到一个标准变量中。

read后面的变量可以是一个,也可以是多个,如果输入多个数据,第一个数据给第一个变量,第二个数据给第二个变量,以此类推。

以上的脚本中,就会把输入的输出保存到what这个变量中。



2read命令读取linux系统上的文件内容

每次调用read命令都读取文件中的一行文本,把文件中的数据传输给read命令。当文件没有可读的行的时候,read命令会以非0的状态退出。

实现方法:使用cat文件,通过管道把内容传输给包含readwhile命令。

Shell:


#!/bin/bash


cat IP.sh |while read IP

do

echo"IP:$IP"

done

echo"finish"


exit 0


功能:把IP.sh中的每一行IP地址都输出出来,然后输出到屏幕上。



现在我的脚本可以实现的功能:把一个文件传输到IP.sh里面所有的IP地址的/home/monitor目录下。

我还需要实现什么功能。

使用root用户远程链接过去,执行命令:useradd monitor

Passwd monitor

这可以作为一个脚本来执行

然后运行另外一个脚本:scp

第三个脚本呢:scp之后,解压缩安装包,然后启动agent进程。