Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1878138
  • 博文数量: 217
  • 博客积分: 4362
  • 博客等级: 上校
  • 技术积分: 4180
  • 用 户 组: 普通用户
  • 注册时间: 2009-09-20 09:31
文章分类

全部博文(217)

文章存档

2017年(1)

2015年(2)

2014年(2)

2013年(6)

2012年(42)

2011年(119)

2010年(28)

2009年(17)

分类:

2009-09-25 18:32:07

引用
引用主要有三种:反斜线引用,单引号引用和双引号引用
反斜线引用:echo $1234
结果是234
     echo I owe \$1234
result:I owe $1234
注意:$1是一个特殊的shell变量
单引号引用:echo '<*^$^*()_+?:::'
result:
<*^$^*()_+?:::
     总之,单引号的引用记住,在单引号内所有字符均被引用,相当于在每一个字符前放一个反斜线一样,但不能在嵌入的单引号前再用单引号。
双引号引用:双引号删除了除以下字符外所有其他字符的特殊含义
$:用于参数替换
``:后引号用于命令替换
\$:打开文字美元符号
\\:使用嵌入的后斜线
\':打开文字后引号
\":使用嵌入的双撇号
所有的其他“\”都是文字符,不具特殊含义
mail -s Meeting tomorrow fred jane < meeting.notice

mail -s Meeting\ tomorrow fred jane < meeting.notice

mail -s 'Meeting tomorrow' fred jane < meeting.notice

mail -s "Meeting tomorrow" fred jane < meeting.notice
以上四句中只有后三句是正确的。

流控制

在c语言中的1是真,0是假,而这里1是假,0是真
if语句
if list1
then
        list2
elif list3
      list4
else
      list5
fi
学过c后,这就很容易理解了。
test的使用
文件测试:这里我只列出了常用的一些文件测试选项
-e文件存在则为真
-d文件存在且是一个目录,则为真
-b文件存在且为一个块特殊文件,则为真
字符串比较:
-z string 若string长度为0,则为真
-n string 若string长度不为0,则为真
string1 = string2 若两个相等则为真
string1 !=string2 若两个不相等则为真
注意其中的空格。
数字比较:
test int1 operator int2
或 [ int1 operator int2 ]
若int1和int2中有一个为字符串而不是整数,则按零对待
常用的数字比较选项
-ne  不等于则为真
-eq  等于则为真
-lt   小于
则为真
-le  小于等于则为真
-gt 大于则为真
-ge  大于等于则为真


case的用法
case word in
        pattern 1)
                 list1
                     ;;
        pattern 2)
                 list2
                    ;;
esac

eg:
#!/bin/bash
FRUIT=kiwi
case "$FRUIT" in
    apple)
    echo "apple"
    ;;
    pear)
    echo "pear"
    ;;
    kiwi)
    echo "kiwi"
esac
#case语句的真正强大功能是它里面可以用通配符
if [ "$FRUIT" = apple ]
then
    echo "apple"
elif [ "$FRUIT" = pear ]
then
    echo "pear"
elif [ "$FRUIT" = kiwi ]
then
    echo "kiwi"
else
    echo "no one"
fi

            
阅读(1451) | 评论(0) | 转发(0) |
0

上一篇:变量和替换

下一篇:循环

给主人留下些什么吧!~~