如何让ubuntu支持这样的写法?

sh/bash/dash/ksh/zsh等Shell脚本
头像
13378333
帖子: 322
注册时间: 2012-05-31 12:00

如何让ubuntu支持这样的写法?

#1

帖子 13378333 » 2012-08-10 11:39

#!/bin/bash
# 输出九九乘法表
i=1
while [ $i -le 9 ]
do
j=1
while [ $j -le $i ]
do
echo -en $"${j}x${i}=$[i*j]\t"
let j++
done
echo
let i++
done
在RHEL里 就可以运行,为啥在ubuntu这里就出错了?
eliving
帖子: 4
注册时间: 2012-08-10 12:01

Re: 如何让ubuntu支持这样的写法?

#2

帖子 eliving » 2012-08-10 12:05

sudo dpkg-reconfigure bash ,然后选择否,ubuntu的默认sh是dash。可能是这个原因吧,你的脚本在我机子上没问题
头像
eexpress
帖子: 58428
注册时间: 2005-08-14 21:55
来自: 长沙

Re: 如何让ubuntu支持这样的写法?

#3

帖子 eexpress » 2012-08-10 12:29

2楼。脚本里面都指定的bash嘛。

出错提示些什么?写出来。
● 鸣学
头像
lilydjwg
论坛版主
帖子: 4258
注册时间: 2009-04-11 23:46
系统: Arch Linux
联系:

Re: 如何让ubuntu支持这样的写法?

#4

帖子 lilydjwg » 2012-08-10 13:10

eexpress 写了:2楼。脚本里面都指定的bash嘛。

出错提示些什么?写出来。
人家执行的是 sh ./xxx 吧。
头像
枫叶饭团
帖子: 14683
注册时间: 2010-06-16 1:05
系统: Mac OS X
来自: Tencent
联系:

Re: 如何让ubuntu支持这样的写法?

#5

帖子 枫叶饭团 » 2012-08-10 13:12

dash这坑爹的,果然还是zsh好。。
头像
13378333
帖子: 322
注册时间: 2012-05-31 12:00

Re: 如何让ubuntu支持这样的写法?

#6

帖子 13378333 » 2012-08-10 14:36

eexpress 写了:2楼。脚本里面都指定的bash嘛。

出错提示些什么?写出来。
-en $1x1=$[i*j]
1.sh: 10: 1.sh: let: not found
-en $1x1=$[i*j]
1.sh: 10: 1.sh: let: not found
-en $1x1=$[i*j]
1.sh: 10: 1.sh: let: not found
-en $1x1=$[i*j]
1.sh: 10: 1.sh: let: not found
-en $1x1=$[i*j]
1.sh: 10: 1.sh: let: not found
-en $1x1=$[i*j]
1.sh: 10: 1.sh: let: not found
-en $1x1=$[i*j]
1.sh: 10: 1.sh: let: not found
-en $1x1=$[i*j]
1.sh: 10: 1.sh: let: not found
-en $1x1=$[i*j]
1.sh: 10: 1.sh: let: not found
-en $1x1=$[i*j]
1.sh: 10: 1.sh: let: not found
-en $1x1=$[i*j]
无限循环
头像
eexpress
帖子: 58428
注册时间: 2005-08-14 21:55
来自: 长沙

Re: 如何让ubuntu支持这样的写法?

#7

帖子 eexpress » 2012-08-10 15:01

谁蛋疼去sh ./xxx
● 鸣学
头像
lilydjwg
论坛版主
帖子: 4258
注册时间: 2009-04-11 23:46
系统: Arch Linux
联系:

Re: 如何让ubuntu支持这样的写法?

#8

帖子 lilydjwg » 2012-08-10 15:15

eexpress 写了:谁蛋疼去sh ./xxx
在你楼上 :em05
eliving
帖子: 4
注册时间: 2012-08-10 12:01

Re: 如何让ubuntu支持这样的写法?

#9

帖子 eliving » 2012-08-10 15:26

呵呵,楼上各位小弟刚学linux,让各位见笑了。不过,小弟淡疼的去sh ./xxx真没问题

代码: 全选

sh ./test.sh
1x1=1	
1x2=2	2x2=4	
1x3=3	2x3=6	3x3=9	
1x4=4	2x4=8	3x4=12	4x4=16	
1x5=5	2x5=10	3x5=15	4x5=20	5x5=25	
1x6=6	2x6=12	3x6=18	4x6=24	5x6=30	6x6=36	
1x7=7	2x7=14	3x7=21	4x7=28	5x7=35	6x7=42	7x7=49	
1x8=8	2x8=16	3x8=24	4x8=32	5x8=40	6x8=48	7x8=56	8x8=64	
1x9=9	2x9=18	3x9=27	4x9=36	5x9=45	6x9=54	7x9=63	8x9=72	9x9=81	
头像
13378333
帖子: 322
注册时间: 2012-05-31 12:00

Re: 如何让ubuntu支持这样的写法?

#10

帖子 13378333 » 2012-08-10 15:48

lilydjwg 写了:
eexpress 写了:谁蛋疼去sh ./xxx
在你楼上 :em05
蛋疼?为啥sh xxx就不行了?和./ .这两种执行有什么区别 ?
头像
枫叶饭团
帖子: 14683
注册时间: 2010-06-16 1:05
系统: Mac OS X
来自: Tencent
联系:

Re: 如何让ubuntu支持这样的写法?

#11

帖子 枫叶饭团 » 2012-08-10 15:53

默默的路过,不看man的问题直接无视掉
头像
lilydjwg
论坛版主
帖子: 4258
注册时间: 2009-04-11 23:46
系统: Arch Linux
联系:

Re: 如何让ubuntu支持这样的写法?

#12

帖子 lilydjwg » 2012-08-10 16:01

13378333 写了:
lilydjwg 写了:
eexpress 写了:谁蛋疼去sh ./xxx
在你楼上 :em05
蛋疼?为啥sh xxx就不行了?和./ .这两种执行有什么区别 ?
因为 dash 不行。 ./ 使用的是第一行指定的 bash,而 sh 不一定是 bash。Ubuntu 默认是 dash,功能少得可怜。
eliving
帖子: 4
注册时间: 2012-08-10 12:01

Re: 如何让ubuntu支持这样的写法?

#13

帖子 eliving » 2012-08-10 16:10

lilydjwg 写了:
13378333 写了:
lilydjwg 写了:
eexpress 写了:谁蛋疼去sh ./xxx
在你楼上 :em05
蛋疼?为啥sh xxx就不行了?和./ .这两种执行有什么区别 ?
因为 dash 不行。 ./ 使用的是第一行指定的 bash,而 sh 不一定是 bash。Ubuntu 默认是 dash,功能少得可怜。
你难道没看见我在2楼里的命令已经将sh从dash改为bash了吗
头像
lilydjwg
论坛版主
帖子: 4258
注册时间: 2009-04-11 23:46
系统: Arch Linux
联系:

Re: 如何让ubuntu支持这样的写法?

#14

帖子 lilydjwg » 2012-08-10 16:30

eliving 写了:
lilydjwg 写了:
13378333 写了: 蛋疼?为啥sh xxx就不行了?和./ .这两种执行有什么区别 ?
因为 dash 不行。 ./ 使用的是第一行指定的 bash,而 sh 不一定是 bash。Ubuntu 默认是 dash,功能少得可怜。
你难道没看见我在2楼里的命令已经将sh从dash改为bash了吗
见到了,怎么了?您是 Ubuntu 核心开发者?
eliving
帖子: 4
注册时间: 2012-08-10 12:01

Re: 如何让ubuntu支持这样的写法?

#15

帖子 eliving » 2012-08-10 16:34

lilydjwg 写了:
eliving 写了:
lilydjwg 写了:
13378333 写了: 蛋疼?为啥sh xxx就不行了?和./ .这两种执行有什么区别 ?
因为 dash 不行。 ./ 使用的是第一行指定的 bash,而 sh 不一定是 bash。Ubuntu 默认是 dash,功能少得可怜。
你难道没看见我在2楼里的命令已经将sh从dash改为bash了吗
见到了,怎么了?您是 Ubuntu 核心开发者?
不好意思被你说中了
回复