引用
引用主要有三种:反斜线引用,单引号引用和双引号引用
反斜线引用: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
阅读(1496) | 评论(0) | 转发(0) |