当前时区为 UTC + 8 小时



发表新帖 回复这个主题  [ 8 篇帖子 ] 
作者 内容
1 楼 
 文章标题 : 里面是我写的简单脚本,我错在哪里?谢谢!
帖子发表于 : 2011-05-11 15:49 

注册: 2010-01-23 23:24
帖子: 104
送出感谢: 0 次
接收感谢: 0 次
是想实现下面的功能:
让用户做一个选择,比如让用户选择向东走还是向西走,然后根据用户的选择给一个变量赋值;
再让用户做一个选择,比如让用户选择向南还是向北,然后根据用户的选择给另一个变量赋值;
最后把这两个变量的值相加。
下面是我写的一个简单的脚本,只是测试这个功能用,可是最终的结果却是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"


页首
 用户资料  
 
2 楼 
 文章标题 : Re: 里面是我写的简单脚本,我错在哪里?谢谢!
帖子发表于 : 2011-05-11 16:01 
头像

注册: 2010-05-24 12:16
帖子: 1015
送出感谢: 0 次
接收感谢: 0 次
没有设定变量赋值吧?


最后由 Yume 编辑于 2011-05-11 16:22,总共编辑了 1 次

页首
 用户资料  
 
3 楼 
 文章标题 : Re: 里面是我写的简单脚本,我错在哪里?谢谢!
帖子发表于 : 2011-05-11 16:05 

注册: 2007-01-02 4:09
帖子: 12
送出感谢: 0 次
接收感谢: 0 次
除了第一个和最后一个echo, 所有的echo前面应该有个分号,hehe

echo -> ; echo


页首
 用户资料  
 
4 楼 
 文章标题 : Re: 里面是我写的简单脚本,我错在哪里?谢谢!
帖子发表于 : 2011-05-11 16:06 

注册: 2010-01-23 23:24
帖子: 104
送出感谢: 0 次
接收感谢: 0 次
代码:
case $var1 in
1 ) var2=4 echo "the value of var2 is $var2"  ;;

这里 var2=4已经赋值了呀,可是执行脚本的时候,就变成var2是空的了。不知道怎么回事 :em20


页首
 用户资料  
 
5 楼 
 文章标题 : Re: 里面是我写的简单脚本,我错在哪里?谢谢!
帖子发表于 : 2011-05-11 16:07 

注册: 2009-07-01 22:04
帖子: 919
送出感谢: 0 次
接收感谢: 13
赋值语句与echo语句在同一行中间要分号。


_________________
bash不如perl精妙,学不到lisp的皮毛,远不够c++强悍,不过可以用。


页首
 用户资料  
 
6 楼 
 文章标题 : Re: 里面是我写的简单脚本,我错在哪里?谢谢!
帖子发表于 : 2011-05-11 16:17 

注册: 2010-01-23 23:24
帖子: 104
送出感谢: 0 次
接收感谢: 0 次
原来是这样呀,谢谢啦!


页首
 用户资料  
 
7 楼 
 文章标题 : Re: 里面是我写的简单脚本,我错在哪里?谢谢!
帖子发表于 : 2011-06-24 13:29 

注册: 2008-10-31 22:12
帖子: 6546
系统: 践兔
送出感谢: 18
接收感谢: 25
代码:
var2=4 echo

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


_________________
代码:
] ls -ld //


页首
 用户资料  
 
8 楼 
 文章标题 : Re: 里面是我写的简单脚本,我错在哪里?谢谢!
帖子发表于 : 2011-06-28 16:35 

注册: 2011-06-28 10:57
帖子: 7
送出感谢: 0 次
接收感谢: 0 次
楼主,我改了一下你的脚本,你看看,在我这边能运行的,也能出来结果
代码:
#!/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"


页首
 用户资料  
 
显示帖子 :  排序  
发表新帖 回复这个主题  [ 8 篇帖子 ] 

当前时区为 UTC + 8 小时


在线用户

正在浏览此版面的用户:没有注册用户 和 1 位游客


不能 在这个版面发表主题
不能 在这个版面回复主题
不能 在这个版面编辑帖子
不能 在这个版面删除帖子
不能 在这个版面提交附件

前往 :  
本站点为公益性站点,用于推广开源自由软件,由 DiaHosting VPSBudgetVM VPS 提供服务。
我们认为:软件应可免费取得,软件工具在各种语言环境下皆可使用,且不会有任何功能上的差异;
人们应有定制和修改软件的自由,且方式不受限制,只要他们自认为合适。

Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
简体中文语系由 王笑宇 翻译