Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/bash/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Linux bash while循环中的“done”函数/含义是什么?_Linux_Bash - Fatal编程技术网

Linux bash while循环中的“done”函数/含义是什么?

Linux bash while循环中的“done”函数/含义是什么?,linux,bash,Linux,Bash,我是bash shell的新人。我被下面的脚本弄糊涂了 #!/bin/bash input=name.csv while IFS=',' read -r Family_name First_name do echo $Family_name echo $First_name done < $input 直觉上,我认为“完成”是某种边界标记,告诉你while字段结束了 这里它显示done可以从变量中获取数据。那么while循环中done的含义/功能是什么?谢谢 直觉上,我认为

我是bash shell的新人。我被下面的脚本弄糊涂了

#!/bin/bash

input=name.csv

while IFS=',' read -r Family_name First_name

do

 echo $Family_name
 echo $First_name

done < $input
直觉上,我认为“完成”是某种边界标记,告诉你while字段结束了

这里它显示done可以从变量中获取数据。那么while循环中done的含义/功能是什么?谢谢

直觉上,我认为“完成”是一种边界生成器,它告诉你“当场结束时”

正确的;完成结束while循环或for循环或类似循环

这里显示done可以从变量获取数据

没有; 直觉上,我认为“完成”是一种边界生成器,它告诉你“当场结束时”

正确的;完成结束while循环或for循环或类似循环

这里显示done可以从变量获取数据

没有; 直觉上,我认为“完成”是一种边界生成器,它告诉你“当场结束时”

没错。done当然是while循环本身的一部分。语法是:

   while list-1; do list-2; done
这里显示done可以从变量获取数据

“完成”关键字并不是唯一特定于“完成”关键字的;相反,它用于整个循环,因此从list-1或list-2的任何语句读取的任何输入都将从文件$input读取

直觉上,我认为“完成”是一种边界生成器,它告诉你“当场结束时”

没错。done当然是while循环本身的一部分。语法是:

   while list-1; do list-2; done
这里显示done可以从变量获取数据


“完成”关键字并不是唯一特定于“完成”关键字的;而是针对整个循环,因此从列表1或列表2的任何语句中读取的任何输入都将从文件$input中读取。

在我不太了解的情况下,>在bash中,是指写入文件,而<是指读取文件,因此基本上你是在告诉loop命令从输入变量读取,其值是name.csv,>在bash中,表示写入文件,而<表示读取文件,因此基本上,您是在告诉loop命令从输入变量读取,其值为name.csv

请看。请注意,相同的重定向语法适用于其他复杂命令,例如,如果。。。然后如果你有时间,你能详细说明一下什么是`<$inputè吗?while循环如何获得重定向?你提到的页面技术性很强,很难理解read@MarineGalantin:从我使用Bash的角度来看,这只是意味着,在while循环期间,标准输入将指向$input,例如name.csv,而不是以前的任何输入。我不知道Bash在封面下到底做了些什么,因为我花了15分钟的时间在写这篇文章,我读了这段相当的片段,让脚本更容易理解。显然,上面的代码严格等同于:/bin/bash;输入=name.csv;{while…done}<$input抱歉,在注释中编写整个脚本有点困难。换句话说,{…}包装了命令。请注意,相同的重定向语法适用于其他复杂的命令,例如,如果。。。然后如果你有时间,你能详细说明一下什么是`<$inputè吗?while循环如何获得重定向?你提到的页面技术性很强,很难理解read@MarineGalantin:从我使用Bash的角度来看,这只是意味着,在while循环期间,标准输入将指向$input,例如name.csv,而不是以前的任何输入。我不知道Bash在封面下到底做了些什么,因为我花了15分钟的时间在写这篇文章,我读了这段相当的片段,让脚本更容易理解。显然,上面的代码严格等同于:/bin/bash;输入=name.csv;{while…done}<$input抱歉,在注释中编写整个脚本有点困难。换句话说,{…}包装了命令。我不确定它是否如此简单:我不确定它是否如此简单: