shell scripts 在ubuntu下运行所产生的问题

sh/bash/dash/ksh/zsh等Shell脚本
回复
baijuguoxi
帖子: 11
注册时间: 2010-02-23 12:48

shell scripts 在ubuntu下运行所产生的问题

#1

帖子 baijuguoxi » 2011-08-30 13:15

#!/bin/bash
# program will show the user's choice
# History:
# 2005/08/25 VBird First release
PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:~/bin
export PATH
read -p "Please input (Y/N): " yn
if [ "$yn" == "Y" ] || [ "$yn" == "y" ]; then
echo "OK, continue"
exit 0
fi
if [ "$yn" == "N" ] || [ "$yn" == "n" ]; then
echo "Oh, interrupt!"
exit 0
fi
echo "I don't know what is your choice" && exit 0

以上这个程序能在suse以及redhat 中正常运行,但是在ubuntu中会出错,出错提示是:

Please input (Y/N): y
[: 11: y: unexpected operator
[: 11: y: unexpected operator
[: 15: y: unexpected operator
[: 15: y: unexpected operator
I don't know what is your choice
请高手予以解答!!
还有一个问题是,在ubuntu中的scripts,如果写echo -e “Hello”。运行时显示的却是
“-e Hello” (也就是说把参数-e也显示出来)。求解。
头像
eexpress
帖子: 58428
注册时间: 2005-08-14 21:55
来自: 长沙

Re: shell scripts 在ubuntu下运行所产生的问题

#2

帖子 eexpress » 2011-08-30 15:29

确定在其他系统里面正常?你估计这边是使用的dash。缺省的shell就是dash。
● 鸣学
baijuguoxi
帖子: 11
注册时间: 2010-02-23 12:48

Re: shell scripts 在ubuntu下运行所产生的问题

#3

帖子 baijuguoxi » 2011-08-30 16:12

eexpress 写了:确定在其他系统里面正常?你估计这边是使用的dash。缺省的shell就是dash。
确定在其他系统里面运行正常。因为我用别人的suse运行过,自己虚拟red hat 9 运行过,都没问题。就是在ubuntu下,死活会弹出出错提示。我这里不缺dash,我也用dash来尝试过运行过。还是那个出错提示。

以下是我的shells
# /etc/shells: valid login shells
/bin/csh
/bin/sh
/usr/bin/es
/usr/bin/ksh
/bin/ksh
/usr/bin/rc
/usr/bin/tcsh
/bin/tcsh
/usr/bin/esh
/bin/dash
/bin/bash
/bin/rbash
/usr/bin/screen
baijuguoxi
帖子: 11
注册时间: 2010-02-23 12:48

Re: shell scripts 在ubuntu下运行所产生的问题

#4

帖子 baijuguoxi » 2011-08-30 20:13

好吧,居然没人理。。。。
百度找到了正解:
sudo dpkg-reconfigure dash
选择 NO

但是我想知道为什么会这样。难道之前一直用着的shell是dash?
不是bash吗?
有知道原理的,求补充!
fnan
帖子: 919
注册时间: 2009-07-01 22:04

Re: shell scripts 在ubuntu下运行所产生的问题

#5

帖子 fnan » 2011-08-30 20:15

刚才测试正常,不过经历过用gedit写脚本运行异常的情况。
bash不如perl精妙,学不到lisp的皮毛,远不够c++强悍,不过可以用。
头像
我就是我2
帖子: 1215
注册时间: 2008-12-13 10:55
来自: the Earth
联系:

Re: shell scripts 在ubuntu下运行所产生的问题

#6

帖子 我就是我2 » 2011-08-30 21:04

baijuguoxi 写了:好吧,居然没人理。。。。
百度找到了正解:
sudo dpkg-reconfigure dash
选择 NO

但是我想知道为什么会这样。难道之前一直用着的shell是dash?
不是bash吗?
有知道原理的,求补充!
:em20 不懂啊.
别"居然",作为普通用户,确实没任何义务给你解答.
苏东坡问佛印道:“人人皆念观世音菩萨,观世音菩萨念谁?”
佛印答道:“念观世音菩萨。”
苏东坡诧异:“为何亦念观世音菩萨?”
曰:“求人不如求己。”


dropbox 誰好奇,誰來點
勞碌一生又如何,虛度一生又如何,你過得開心嗎?人活著就要開心嘛!
wizardcxy
帖子: 2
注册时间: 2011-08-14 17:01

Re: shell scripts 在ubuntu下运行所产生的问题

#7

帖子 wizardcxy » 2011-08-31 18:30

我也遇到了相同问题,在自己写鸟哥的 shell script 时
fnan
帖子: 919
注册时间: 2009-07-01 22:04

Re: shell scripts 在ubuntu下运行所产生的问题

#8

帖子 fnan » 2011-08-31 20:24

fnan 写了:刚才测试正常,不过经历过用gedit写脚本运行异常的情况。
#重现了代码,发现是没有避开sed陷阱的原因,不关ubuntu事,当时练习用sed写二进制加法器。
bash不如perl精妙,学不到lisp的皮毛,远不够c++强悍,不过可以用。
fnan
帖子: 919
注册时间: 2009-07-01 22:04

Re: shell scripts 在ubuntu下运行所产生的问题

#9

帖子 fnan » 2011-08-31 20:28

wizardcxy 写了:我也遇到了相同问题,在自己写鸟哥的 shell script 时
鸟哥的是RH系的,有些跟debian系不兼容。
bash不如perl精妙,学不到lisp的皮毛,远不够c++强悍,不过可以用。
baijuguoxi
帖子: 11
注册时间: 2010-02-23 12:48

Re: shell scripts 在ubuntu下运行所产生的问题

#10

帖子 baijuguoxi » 2011-09-01 19:46

wizardcxy 写了:我也遇到了相同问题,在自己写鸟哥的 shell script 时
你的问题解答了吗?
我的百度解答了,但是不明白其中的原因。。。
回复