shell编程中while ture和while :为什么等同?

shell编程中while ture和while :为什么等同?


子衿沉夜
浏览 1008回答 3
3回答

森林海

shell编程中while true与while :确实等同。类似于C语言中的 while (1),用于构造无穷循环。在shell编程中经常用到循环,常用的循环有for和while循环两种。while循环默认以行读取文件,而for循环以空格读取文件切分文件,本篇就结合现网的一些使用示例说说二者的用法和区别。一、常用语法1、for循环for循环常用的语法结构有如下几种:for 变量 in seq字符串for 变量 in `command` " "for 变量 in "$@"或“$*”for((赋值;条件;运算语句))2、while循环while循环常用的语法结构有如下几种:二、行读取示例这里以常见的df获取磁盘信息为例,了解下使用for和while的几种循环方法处理时的区别。先看下我写的脚本,内容如下:上面的脚本执行时结果如下:可以看到,只有后面两种方法可以正常获取到我们想要的数据,前面两种方法在处理时和我们想要的结果都不一样。此示例得出的结果为:1、while循环: 以行读取文件,默认分隔符是空格或者Tab;2、for循环: 以空格读取文件,也就是碰到空格,就开始执行循环体,所以需要以行读取的话,就要把空格转换成其他字符。三、ssh连接与wait这里还是以一个测试脚本为例:此示例的结果这里不再输出,具体可以使用该脚本ssh几台主机做个测试,测试后得到结果如下:1、for循环: 循环体在后台执行,等待循环体全部执行结束,后面的命令接着执行。2、while循环: wait没起到作用,循环体在后台执行,后面的命令也同时在执行。循环体内有ssh、scp、sshpass的时候有执行一次循环就退出的情况,解决该问题方法有如下两种:a、使用ssh -n "command" ;b、将while循环内加入null重定向,如 ssh "cmd" < /dev/null 将ssh 的输入重定向输入。
打开App,查看更多内容
随时随地看视频慕课网APP