Linux 由于While,Read命令无法按预期工作
我面临一个奇怪的错误 我有一个包含一些输入的文件,根据这些输入,我请求用户确认并继续执行操作(如下所示) 由于函数中的读取行,实际的读取-p“[y/n]:”从上述测试文件而不是从STDIN中拾取输入 如果在读取行时删除cat测试|循环(这显然不是我想要的),程序工作正常 以前有没有人遇到过这个问题,或者有人能帮我解决这个问题Linux 由于While,Read命令无法按预期工作,linux,bash,macos,shell,unix,Linux,Bash,Macos,Shell,Unix,我面临一个奇怪的错误 我有一个包含一些输入的文件,根据这些输入,我请求用户确认并继续执行操作(如下所示) 由于函数中的读取行,实际的读取-p“[y/n]:”从上述测试文件而不是从STDIN中拾取输入 如果在读取行时删除cat测试|循环(这显然不是我想要的),程序工作正常 以前有没有人遇到过这个问题,或者有人能帮我解决这个问题 提前谢谢 使用不同的文件描述符(而不是管道)进行测试 while IFS= read -r line <&3; do ... done 3< t
提前谢谢 使用不同的文件描述符(而不是管道)进行
测试
while IFS= read -r line <&3; do
...
done 3< testing
当IFS=read-r line时,使用不同的文件描述符(而不是管道)进行测试
while IFS= read -r line <&3; do
...
done 3< testing
当IFS=read-r行时,请使用www.shellcheck.net检查您的代码,该代码有几个问题,网站提供了有用的信息。请注意链接副本的接受答案中的注释,该注释指向一个更好的答案。@ArigatoManga,“不是问题”,前提是您知道自己的输入是什么。例如,如果您的输入文件有一个*
,那么您将获得当前目录中的文件列表,作为单个参数传递给test
@ArigatoManga,…。类似地,如果您的输入行是hello world
,那么有效的test命令将完全等同于[“hello”“world”=“hi”]
,无效语法(只允许在=
的左侧有一个参数)。请显示您正在使用的确切代码,以便我们重现该语法错误。请使用www.shellcheck.net检查您的代码,它有几个问题,网站提供了有用的信息。请注意链接副本的公认答案中的注释,该注释指向一个更好的答案。@ArigatoManga,“不是问题”,前提是您知道自己的输入是什么。例如,如果您的输入文件有一个*
,那么您将获得当前目录中的文件列表,作为单个参数传递给test
@ArigatoManga,…。类似地,如果您的输入行是hello world
,那么有效的test命令将完全等同于[“hello”“world”=“hi”]
,无效语法(在=
的左侧只允许有一个参数)。请显示您正在使用的确切代码,以便我们重现该语法错误。@CharlesDuffy我尝试了重复问题中指定的所有答案,但第一个答案不起作用(如注释中指定的)第二个是给出错误,`syntax error near unexpected token}done;}3下面是我尝试的代码(为了方便,我删除了文件中的所有其他内容),#/bin/bash while IFS=read DC_ip您在read
命令的重定向中缺少&
,并且使用感谢它正在工作。@CharlesDuffy我尝试了重复问题中指定的所有答案,但第一个答案不起作用(如注释中所指定的),第二个给出了错误,`意外标记附近的语法错误}'已完成;}3下面是我尝试的代码(为了方便,我删除了文件中的所有其他内容),#/bin/bash当IFS=read DC_ip时,您在read
命令上的重定向中缺少&
,使用感谢它正在工作。。