当前时区为 UTC + 8 小时



发表新帖 回复这个主题  [ 10 篇帖子 ] 
作者 内容
1 楼 
 文章标题 : 开始学shell脚本,大家帮忙。
帖子发表于 : 2010-11-20 3:14 

注册: 2010-10-27 6:40
帖子: 11
送出感谢: 0 次
接收感谢: 0 次
我在shell下进行赋值操作($ a = 0),但是不行,用set命令($ set a = 0),但是显示的时候什么都没有($ echo $a)。这是什么问题啊?
我看见有些人直接打 $ a = 0 就可以赋值了,是不是版本的问题还是需要安装什么软件啊?

先谢谢大家!


页首
 用户资料  
 
2 楼 
 文章标题 : Re: 开始学shell脚本,大家帮忙。
帖子发表于 : 2010-11-20 3:58 
头像

注册: 2008-02-15 0:09
帖子: 852
送出感谢: 0 次
接收感谢: 0 次
$a=0不是赋值
代码:
a=0
echo $a


学shell一定要看ABS。


_________________
Somebody think they are full of niubility, so they play a zhuangbility, but only reflect their shability.


页首
 用户资料  
 
3 楼 
 文章标题 : Re: 开始学shell脚本,大家帮忙。
帖子发表于 : 2010-11-20 4:08 

注册: 2010-10-27 6:40
帖子: 11
送出感谢: 0 次
接收感谢: 0 次
对啊 就是 a = 0
在ubuntu下面不行的,一定要用 set a = 0
但是 赋值完以后 echo $a 什么都没有显示出来 只是空白的


页首
 用户资料  
 
4 楼 
 文章标题 : Re: 开始学shell脚本,大家帮忙。
帖子发表于 : 2010-11-20 8:10 
头像

注册: 2006-10-25 18:08
帖子: 1582
送出感谢: 0 次
接收感谢: 0 次
给你个脚本样例,看看就明白了。
代码:
#!/bin/bash
max=50   #变量max赋值
for i in `tr -s ' ' '\n'<lines3|sort -n`   #注意,当你给变量i赋值的时候是没有$符号的
do
  let max=max-i
  (($max<0))&&break   #当你需要调用一个变量的时候,需要用$告诉脚本“这不是字符串”!
  echo $i   #同上
done


_________________
楼主真是一派胡言,真可谓:“两个黄鹂鸣翠柳,不知所云;一行白鹭上青天,不知所止“。本来不想和你辩论,今天气愤不过,和你理论一番。我国宪法写得清清楚楚:“一夜夫妻百日恩,七楼以上才有电梯”。这个想必你知道,既然知道,你就不能断章取义,就算是天气预报,它还有不准的时候呢!!!再者说了,那中国银行也不是你一家开的。人家马拉多纳都结婚了,你还拿着粮票顶什么用呢。真是滑天下之大稽。前些日子,全国人大刚刚开过会,郑重声明:“中国不搞多party制,存栏母猪给补贴”。多好的事呢,楞让你这号人给搅混了。


页首
 用户资料  
 
5 楼 
 文章标题 : Re: 开始学shell脚本,大家帮忙。
帖子发表于 : 2010-11-20 15:54 
头像

注册: 2008-02-15 0:09
帖子: 852
送出感谢: 0 次
接收感谢: 0 次
赋值“=”左右不要有空格,很低级的错误。


_________________
Somebody think they are full of niubility, so they play a zhuangbility, but only reflect their shability.


页首
 用户资料  
 
6 楼 
 文章标题 : Re: 开始学shell脚本,大家帮忙。
帖子发表于 : 2010-11-21 0:12 

注册: 2010-10-27 6:40
帖子: 11
送出感谢: 0 次
接收感谢: 0 次
我举个最简单的例子
#!/bin/dash
#test
set a = "hallo word"
echo $a

我在shell下打./test.sh
什么都没有显示出来。这是为什么?只是空白一行。


页首
 用户资料  
 
7 楼 
 文章标题 : Re: 开始学shell脚本,大家帮忙。
帖子发表于 : 2010-11-21 0:48 
头像

注册: 2008-02-15 0:09
帖子: 852
送出感谢: 0 次
接收感谢: 0 次
:em20
set不是用来赋值,用来修改内部脚本变量的值如$1,$2之类
set a = "hallo word" 把 a = "hallo word" 整个字符串赋给$1
如果用了set a = "hallo word" ,再
代码:
echo $1

输出就会是a = "hallo word"
建议还是认真地看一遍ABS《Advanced Bash Shell Scripting Guild》中文名《高级BASH脚本编程指南》


_________________
Somebody think they are full of niubility, so they play a zhuangbility, but only reflect their shability.


页首
 用户资料  
 
8 楼 
 文章标题 : Re: 开始学shell脚本,大家帮忙。
帖子发表于 : 2010-11-21 6:41 

注册: 2010-10-27 6:40
帖子: 11
送出感谢: 0 次
接收感谢: 0 次
谢谢大家!
以后还有问题,还是要请教啊!


页首
 用户资料  
 
9 楼 
 文章标题 : Re: 开始学shell脚本,大家帮忙。
帖子发表于 : 2010-11-23 22:08 

注册: 2008-10-31 22:12
帖子: 6546
系统: 践兔
送出感谢: 18
接收感谢: 25
等号两边不能有空格。赋值的时候,变量名前面不要有$,举个例子:
代码:
foo=bar
$foo=test
echo "$foo"
echo "${!foo}"

输出是bar和test。

建议写命令的时候前面不要带$。复制麻烦的。
同时建议下:
http://tusooa.heroku.com/shell/2010/11/ ... mands.html


_________________
代码:
] ls -ld //


页首
 用户资料  
 
10 楼 
 文章标题 : Re: 开始学shell脚本,大家帮忙。
帖子发表于 : 2010-11-24 16:41 

注册: 2009-09-04 18:03
帖子: 2
送出感谢: 0 次
接收感谢: 0 次
ebok 写道:
$a=0不是赋值
代码:
a=0
echo $a


学shell一定要看ABS。


刚下载 一定要看!


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

当前时区为 UTC + 8 小时


在线用户

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


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

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

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