shell脚本,在循环体中执行ssh命令的问题
2016-07-14 19:11
441 查看
cat ./file.txt | grep -v "^#" | while read IP IQ do ssh tomcat@$IP ... .. done
上述代码,当file.txt中的内容超过了2行,那么问题就出现了,第二行的内容并不会读出来。
原因以及解释如下:(来自网络)
在while循环中ssh中断的问题
解决方案: ssh -n
其中-n 于 </dev/null 功能相同,由于ssh 命令会可能等待输入,会导致read的时候出问题。
http://bbs.chinaunix.net/thread-3582099-1-1.html
关于while read只执行一次的问题
Q:下面的代码为何只执行了一次就退出了?
seq 10 >file
while read a
do
echo $a
dd &>/dev/null
done <file
A:因为重定向是针对整个while循环块的,而不只是read命令
请参看下面的链接
http://bbs.chinaunix.net/viewthread.php?tid=769040
相关文章推荐
- Shell脚本
- Bash的变量和参数
- Linux Shell脚本编程之if用法示例
- shell 中变量的截取
- 几个简单的shell脚本
- Shell程序设计
- Shell学习笔记
- Bash中的特殊字符
- Shell 编程之常用的字符串提取命令
- 习题3 数字和数学计算
- 一个解析cgi参数的SHELL脚本
- (Ubantu)使用gcc编译一个程序a.c成a.out,输入a.out运行,提示bash:a.out:command not found,怎么回事
- Java in Nutshell 摘要
- 【Shell】shell带有返回值的函数
- 变量的用法
- linux ohmyzsh shell主题包以及修改shell命令
- shell学习-11-重定向
- shell学习-10-函数
- Shell入门教程:命令替换 $() 和 ``
- shell学习-9-if-case-for-while-until-break