while read line 怎么用啊
本帖最后由 i1zhuxian 于 2015-10-8 16:14 编辑要写个脚本取出文件里的ip和hostname并写到/etc/hosts中
文件如下:
1,192.168.0.10,slave1
2,192.168.0.11,slave2
.
.
.
100,192.168.0.100,slave100
有找到下面的写法,但是看不懂……{:6_456:}
蛮烦哪位大神帮忙解释下,谢谢!!
catslave | while read line
do
line=${line//,/ } #就是这4行看不明白{:6_402:}
arr=($line)
line1=${arr}
line2=${arr}
echo "$line1$line2" >>/etc/hosts
done
这四行我也看不懂,你参考下 这个 http://blog.itpub.net/22664653/viewspace-1175858/ 本帖最后由 i1zhuxian 于 2015-10-8 17:02 编辑
relvrui 发表于 2015-10-8 16:21
这四行我也看不懂,你参考下 这个 http://blog.itpub.net/22664653/viewspace-1175858/
谢谢哈 ,看了下 还是不明白啊 只能根据上下文猜测一下额
line=${line//,/ } #以 “," 分割? ","被替换?完全不明白啊?!!!{:6_443:}
arr=($line) #数组?
line1=${arr} #将第2段赋值给line1(从0开始?)
line2=${arr} #将第3段赋值给line1 i1zhuxian 发表于 2015-10-8 16:41
谢谢哈 ,看了下 还是不明白啊 只能根据上下文猜测一下额
line=${line//,/ } #以 “," 分割
arr=($ ...
line=${line//,/ } 如果是以空格为分割呢?要怎么去写?
我又看了一下,脚本在sh -x 查看执行情况,以下是我的理解:
line=${line//,/ } #获取文本中的一行后,用空格替换文档中的逗号;我一般用sed去写, sed -e 's/,/ /g' filename
arr=($line) #相当于是没有标点符号的一串字符,中间有空格的
line1=${arr} #把一行看到数组,第二个元素
line2=${arr} #把一行看到数组,第三个元素
页:
[1]