Linux bash while循环中的“done”函数/含义是什么?
我是bash shell的新人。我被下面的脚本弄糊涂了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的含义/功能是什么?谢谢 直觉上,我认为
#!/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抱歉,在注释中编写整个脚本有点困难。换句话说,{…}包装了命令。我不确定它是否如此简单:我不确定它是否如此简单: