read命令的工作机理是:从标准输入中读取一行,并把输入行的每个字段的值指定给shell变
read命令,
{ read line2
read line4
} < /etc/fstab
echo $line2
echo $line4
它会读取一行,line2是第一行的内容,line4是第二行的内容?不是这样的
看脚本
如果不加中间的echo的话
line22 ,line222中都是第一行的数据,
如果加上echo,line22是第一行的数据,line222是第二行的数据
Linux下read命令可以用来接收键盘的标准输出,或者是文件描述符的输出。
比如脚本: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这个变量中。
2:read命令读取linux系统上的文件内容
每次调用read命令都读取文件中的一行文本,把文件中的数据传输给read命令。当文件没有可读的行的时候,read命令会以非0的状态退出。
实现方法:使用cat文件,通过管道把内容传输给包含read的while命令。
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进程。