我不习惯编写Bash脚本,谷歌没有帮助弄清楚这个脚本有什么问题:
#!/bin/bash
while read myline
do
done
echo "Hello"
while read line
do
done
exit 0
Run Code Online (Sandbox Code Playgroud)
我得到的输出是:
./basic.agi: line 4: syntax error near unexpected token 'done'
./basic.agi: line 4: 'done'
Run Code Online (Sandbox Code Playgroud)
我的bash
版本是:
GNU bash, version 3.2.25(1)-release (i686-redhat-linux-gnu)
Run Code Online (Sandbox Code Playgroud)
谢谢.
编辑:当while循环不为空时,脚本可以正常工作.
当我在它的时候......我希望当用户输入任何内容时退出循环,即.只需按Enter键,但Bash保持循环.我怎么能退出循环?
while read myline
do
echo ${myline}
done
echo "Hello"
while read line
do
true
done
exit 0
Run Code Online (Sandbox Code Playgroud)
pax*_*blo 16
你不能有一个空循环.如果你想要一个占位符,只需使用true
.
#!/bin/bash
while read myline
do
true
done
Run Code Online (Sandbox Code Playgroud)
或者,更有可能的是,对输入做一些有用的事情:
#!/bin/bash
while read myline
do
echo "You entered [$line]"
done
Run Code Online (Sandbox Code Playgroud)
至于你的第二个问题,关于当用户只是按下ENTER其他东西时如何退出循环,你可以做一些事情:
#!/bin/bash
read line
while [[ "$line" != "" ]] ; do
echo "You entered [$line]"
read line
done
Run Code Online (Sandbox Code Playgroud)