分页: 1 / 2
求助一个关于中括号条件判断式的问题
发表于 : 2010-04-10 16:28
由 海贼的童话
还是编shell的新手,今天试编了一下shell程序,可是在中括号的条件判断是中出现了问题
代码: 全选
#!/bin/bash
# program:
# This program will show the user's choice
# History:
# 2010/4/10 susu First release
PATH=:/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:~/bin
export PATH
read -p "Please input choice: " choice
[ "$choice" == "Y" -o "$choice" == "y"] &&echo "Ok,continue" &&exit 0这里的空格符号,我非常注意了,就是每个部分中间都要有空格
[ "$choice" == "N" -o "$choice" == "n"] &&echo "Oh,interrupt" &&exit 0
echo "I don't know what is your choice"
可是确出现如下问题
Please input choice: n
./sh06.sh: line 10: [n:找不到命令
./sh06.sh: line 11: [n:找不到命令
I don't know what is your choice
请大牛解答,再问个小问题,就是面板上面的nm-applet怎么重现显示,就是我不小心把它从面板上删除了,现在无法切换网络状态了
Re: 求助一个关于中括号条件判断式的问题
发表于 : 2010-04-10 16:33
由 JiangHui
代码: 全选
#!/bin/bash
# program:
# This program will show the user's choice
# History:
# 2010/4/10 susu First release
PATH=:/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:~/bin
export PATH
read -p "Please input choice: " choice
[ "$choice" == "Y" -o "$choice" == "y" ] &&echo "Ok,continue" &&exit 0 #这里的空格符号,我非常注意了,就是每个部分中间都要有空格
[ "$choice" == "N" -o "$choice" == "n" ] &&echo "Oh,interrupt" &&exit 0
echo "I don't know what is your choice"
Re: 求助一个关于中括号条件判断式的问题
发表于 : 2010-04-10 16:44
由 海贼的童话
JiangHui 写了:代码: 全选
#!/bin/bash
# program:
# This program will show the user's choice
# History:
# 2010/4/10 susu First release
PATH=:/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:~/bin
export PATH
read -p "Please input choice: " choice
[ "$choice" == "Y" -o "$choice" == "y" ] &&echo "Ok,continue" &&exit 0 #这里的空格符号,我非常注意了,就是每个部分中间都要有空格
[ "$choice" == "N" -o "$choice" == "n" ] &&echo "Oh,interrupt" &&exit 0
echo "I don't know what is your choice"
什么什么?是否可以解决?
Re: 求助一个关于中括号条件判断式的问题
发表于 : 2010-04-10 16:45
由 JiangHui
帮你改了,复制上去
Re: 求助一个关于中括号条件判断式的问题
发表于 : 2010-04-10 16:51
由 海贼的童话
JiangHui 写了:帮你改了,复制上去
啊,是哪里有问题呀,是否可以指教一下?
Re: 求助一个关于中括号条件判断式的问题
发表于 : 2010-04-10 16:52
由 JiangHui
就是空格问题啊

Re: 求助一个关于中括号条件判断式的问题
发表于 : 2010-04-10 17:06
由 海贼的童话
JiangHui 写了:就是空格问题啊

对不起,我还是没有看出来,抱歉
我明明是按照要求写的空格啊,就是把所有的一个栏目都要加上空格啦,难道有什么不同吗?
Re: 求助一个关于中括号条件判断式的问题
发表于 : 2010-04-10 17:08
由 JiangHui
用vimdiff比较下两个文件
右边的中括号
Re: 求助一个关于中括号条件判断式的问题
发表于 : 2010-04-10 19:48
由 海贼的童话
海贼的童话 写了:JiangHui 写了:代码: 全选
#!/bin/bash
# program:
# This program will show the user's choice
# History:
# 2010/4/10 susu First release
PATH=:/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:~/bin
export PATH
read -p "Please input choice: " choice
[ "$choice" == "Y" -o "$choice" == "y" ] &&echo "Ok,continue" &&exit 0 #这里的空格符号,我非常注意了,就是每个部分中间都要有空格
[ "$choice" == "N" -o "$choice" == "n" ] &&echo "Oh,interrupt" &&exit 0
echo "I don't know what is your choice"
什么什么?是否可以解决?
我刚刚发现一个问题,就是加上可执行的属性后,./sh06.sh(这个文件时这个名字)完全正常
但是如果继续用sh sh06.sh就会重新出现那个问题,请问这是怎么回事?
如下所示
Please input choice: Y
Ok,continue
susu@susu17:29:38:~/scripts$ ./sh06.sh
Please input choice: N
Oh,interrupt
susu@susu17:29:41:~/scripts$ sh sh06.sh
Please input choice: y
[: 10: y: unexpected operator
[: 11: y: unexpected operator
I don't know what is your choice
Re: 求助一个关于中括号条件判断式的问题
发表于 : 2010-04-10 20:00
由 JiangHui
怎么可能直接执行就行,sh 方式就不行?
rpwt?
Re: 求助一个关于中括号条件判断式的问题
发表于 : 2010-04-10 20:03
由 JiangHui
ls -l /bin/sh 是不是指向bash?难道是这个原因?
Re: 求助一个关于中括号条件判断式的问题
发表于 : 2010-04-11 9:32
由 海贼的童话
JiangHui 写了:ls -l /bin/sh 是不是指向bash?难道是这个原因?
恩~~确实是的,我的
ls -l /bin/sh指向的是 dash 需要怎么更改呀?
Re: 求助一个关于中括号条件判断式的问题
发表于 : 2010-04-11 9:40
由 JiangHui
重新软链接一下
Re: 求助一个关于中括号条件判断式的问题
发表于 : 2010-04-11 10:05
由 海贼的童话
JiangHui 写了:重新软链接一下
它总是说该符号已经存在,是不是命令不对呀
ln -s /bin/sh bash
Re: 求助一个关于中括号条件判断式的问题
发表于 : 2010-04-11 10:10
由 JiangHui
敲反了
不知道改了Ubuntu默认sh会不会有什么难以预料的问题,bash 06.sh 也是一样