分页: 1 / 1

里面是我写的简单脚本,我错在哪里?谢谢!

发表于 : 2011-05-11 15:49
nigo
是想实现下面的功能:
让用户做一个选择,比如让用户选择向东走还是向西走,然后根据用户的选择给一个变量赋值;
再让用户做一个选择,比如让用户选择向南还是向北,然后根据用户的选择给另一个变量赋值;
最后把这两个变量的值相加。
下面是我写的一个简单的脚本,只是测试这个功能用,可是最终的结果却是sum永远是0。
而且echo "the value of var2 is $var2" 这断代码的输出是 the value of var2 is
可是我明明给var2赋值了呀。请教大家了,谢谢!下面是我的代码:

代码: 全选

#!/bin/bash
echo "请选择1;2;3中的一个"
read var1
case $var1 in
1 ) var2=4 echo "the value of var2 is $var2"  ;;
2 ) var2=10 echo "the value of var2 is $var2"  ;; 
3 ) var2=200 echo "the value of var2 is $var2" ;;
esac
echo "请选择1,2"
read var3
case $var3 in
1 ) var4=1 echo "var4 is $var4" ;;
2 ) var4=2 echo "var4 is $var4" ;;
esac 
sum=$((var2+var4))
echo "var2和var4的和是$sum"

Re: 里面是我写的简单脚本,我错在哪里?谢谢!

发表于 : 2011-05-11 16:01
Yume
没有设定变量赋值吧?

Re: 里面是我写的简单脚本,我错在哪里?谢谢!

发表于 : 2011-05-11 16:05
jonef
除了第一个和最后一个echo, 所有的echo前面应该有个分号,hehe

echo -> ; echo

Re: 里面是我写的简单脚本,我错在哪里?谢谢!

发表于 : 2011-05-11 16:06
nigo

代码: 全选

case $var1 in
1 ) var2=4 echo "the value of var2 is $var2"  ;;
这里 var2=4已经赋值了呀,可是执行脚本的时候,就变成var2是空的了。不知道怎么回事 :em20

Re: 里面是我写的简单脚本,我错在哪里?谢谢!

发表于 : 2011-05-11 16:07
fnan
赋值语句与echo语句在同一行中间要分号。

Re: 里面是我写的简单脚本,我错在哪里?谢谢!

发表于 : 2011-05-11 16:17
nigo
原来是这样呀,谢谢啦!

Re: 里面是我写的简单脚本,我错在哪里?谢谢!

发表于 : 2011-06-24 13:29
tusooa

代码: 全选

var2=4 echo
这是传递环境变量,echo执行完之后那$var2就没了.
varN=xxx 之后要有分号

Re: 里面是我写的简单脚本,我错在哪里?谢谢!

发表于 : 2011-06-28 16:35
joseneo
楼主,我改了一下你的脚本,你看看,在我这边能运行的,也能出来结果

代码: 全选

#!/bin/bash

echo "pls chosen one from 1,2,3"
read var1
case $var1 in
	1)
		var2=6
		echo "the value of var2 is $var2"
		;;
	2)
		var2=13
		echo "the value of var2 is $var2"
		;;
	3)
		var2=16
		echo "the value of var2 is $var2"
		;;
esac

echo "pls chosen one from 1,2"
read var3
case $var3 in
	1)
		var4=3
		echo "var4 is $var4"
		;;
	2)
		var4=6
		echo "var4 is $var4"
		;;
esac

[ -n "$var2" ]
[ -n "$var4" ]

sum=`expr $var2 + $var4`
echo "the sum of var2 and var4 is $sum"