while语句的问题
#!/bin/bashecho "Key in the filename "
read filename
echo "Key in the data"
while
read x
do
echo $x >> $filename
done
cat $filename
#end
书上说当输入Enter时结束循环,但事实上不是,怎么结束循环呢?
我在一本教材上看到的!才学Shell编程。 你这里的while 和 read x 写在同一行试一下 你这里的while 和 read x 写在同一行试一下
我试过,不好使. 没人知道么?多么简单的问题啊! 这个while没有一个终止的条件,死循环
我改了一下:
#!/usr/local/bin/bash
echo "key in the filename"
read filename
echo "key in the data"
while (read x&&echo $x>>$filename)
do
cat $filename
exit
done
这个while没有一个终止的条件,死循环
我改了一下:
#!/usr/local/bin/bash
echo "key in the filename"
read filename
echo "key in the data"
while (read x&&echo $x>>$filename)
do
cat $filename
exit
done
谢谢MichaelBibby,但是
do
cat $filename
exit
done
不就退出了么?
我想了两天,觉得是不是read命令把回车命令也当作一个参数啊,因为我执行后,看那个$filename文件,里面的有不少空白行.肯定是回车闹的.
我在条件里这么写的:
read x
test $x !="Quit"
输入Quit结束.
怎么才能让他没有参数就结束呢? 怎么才能让他没有参数就结束呢?
没有参数?
那就是输入的内容是空喽,试试这样:
read x
if [ X$x == X"" ]
then
exit
else
echo "no"
fi
X$x == X""
这个X是什么啊? :neutral:
X$x == X""
这个X是什么啊? :neutral:就是大写的字母XYZ中的X,通常使用test进行条件判断时都会用到(当然,不一定是X,可以是其他字符)
当变量 $VAR 未赋值,或值为空时,不加X的判断就会出问题:
[ $x == "" ]
最典型的一个例子是OpenBSD的 /etc/rc.conf 文件,兄弟可以参考一下 谢!
我去看一下!
页:
[1]