linux – 在Bash脚本中循环?

前端之家收集整理的这篇文章主要介绍了linux – 在Bash脚本中循环?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我不习惯编写 Bash脚本,谷歌没有帮助弄清楚这个脚本有什么问题:
  1. #!/bin/bash
  2. while read myline
  3. do
  4. done
  5.  
  6. echo "Hello"
  7. while read line
  8. do
  9. done
  10.  
  11. exit 0

我得到的输出是:

  1. ./basic.agi: line 4: Syntax error near unexpected token 'done'
  2. ./basic.agi: line 4: 'done'

我的bash版本是:

  1. GNU bash,version 3.2.25(1)-release (i686-redhat-linux-gnu)

谢谢.

编辑:当while循环不为空时,脚本可以正常工作.

当我在它的时候……我希望在用户输入任何内容退出循环,即.只需按Enter键,但Bash保持循环.我怎么能退出循环?

  1. while read myline
  2. do
  3. echo ${myline}
  4. done
  5.  
  6. echo "Hello"
  7. while read line
  8. do
  9. true
  10. done
  11.  
  12. exit 0

解决方法

你不能有一个空循环.如果你想要一个占位符,只需使用true.
  1. #!/bin/bash
  2. while read myline
  3. do
  4. true
  5. done

或者,更有可能的是,对输入做一些有用的事情:

  1. #!/bin/bash
  2. while read myline
  3. do
  4. echo "You entered [$line]"
  5. done

至于你的第二个问题,关于如何在用户只需按ENTER键时退出循环,你可以做一些事情:

  1. #!/bin/bash
  2. read line
  3. while [[ "$line" != "" ]] ; do
  4. echo "You entered [$line]"
  5. read line
  6. done

猜你在找的Linux相关文章