LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 642|回复: 5

Shell 的小鳥, 求解答, 謝謝.

[复制链接]
发表于 2005-4-7 12:09:32 | 显示全部楼层 |阅读模式
這二個shell的表達式有何分別的呢? 請各位指點指點.

TEXT1="abc123"
TEXT2=abc123

echo $TEXT1
echo ${TEXT2}

謝謝.
发表于 2005-4-7 12:34:27 | 显示全部楼层
你用过后感觉有什么区别吗?

其实本质没有什么区别
TEXT1="abc123"
TEXT2=abc123
比如
  1. zhyfly@zhyfly:~$ a="abc123"
  2. zhyfly@zhyfly:~$ b="abc12"3
  3. zhyfly@zhyfly:~$ echo $a $b
  4. abc123 abc123
  5. zhyfly@zhyfly:~$ echo "$a $b"
  6. abc123 abc123
  7. zhyfly@zhyfly:~$ echo ${a} ${b}
  8. abc123 abc123
  9. zhyfly@zhyfly:~$
复制代码

但是当变量中带有IFS(Internal Field Separator)时,双引号就会发生作用,IFS主要由空格,tab和回车三种类型,比如你要定义一个变量为i am a student,就必须用双引号引起:
  1. zhyfly@zhyfly:~$ a=i am a student
  2. bash: am: command not found
  3. zhyfly@zhyfly:~$ a="i am a student"
  4. zhyfly@zhyfly:~$ echo $a
  5. i am a student
  6. zhyfly@zhyfly:~$
复制代码

第二个就略有差别.但在这个例子中没有什么差别,${}用于防止变量混淆,比如
  1. zhyfly@zhyfly:~$ a=i
  2. zhyfly@zhyfly:~$ b=u
  3. zhyfly@zhyfly:~$ echo "$a love $b"
  4. i love u
  5. zhyfly@zhyfly:~$ echo "$alove$b"
  6. u
  7. zhyfly@zhyfly:~$ echo "${a}love$b"
  8. iloveu
  9. zhyfly@zhyfly:~$
复制代码

另外${}还有好多功能,比如它可以计算变量长度等
  1. zhyfly@zhyfly:~$ a="i am a student"
  2. zhyfly@zhyfly:~$ echo ${#a}
  3. 14
  4. zhyfly@zhyfly:~$
复制代码

${}功能很多,可以搜索看看
回复 支持 反对

使用道具 举报

发表于 2005-4-7 13:47:08 | 显示全部楼层
zhy2111314兄很热心,解释的很清楚:),替楼主谢谢你啦
回复 支持 反对

使用道具 举报

发表于 2005-4-7 16:40:45 | 显示全部楼层
Post by kiron
zhy2111314兄很热心,解释的很清楚:),替楼主谢谢你啦

版主夸奖,万分荣幸
北南兄说了,帮助他人,快乐自己,呵呵,希望自己能为sir做点事!
回复 支持 反对

使用道具 举报

发表于 2005-4-8 14:31:34 | 显示全部楼层
谢谢 zhy2111314 兄阿
回复 支持 反对

使用道具 举报

 楼主| 发表于 2005-4-8 15:07:55 | 显示全部楼层
真的要謝謝你們呢.  :thank  :thank
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表