shell编程echo、read、expr、declare摘记

echo

1.显示普通字符串:
  echo "It is a test"
  这里的双引号完全可以省略
  echo It is a test 效果与上面一致
2.显示转义字符
  echo "\"It is a test\""
  结果将是: "It is a test"
  同样,双引号也可以省略
3.显示变量
  read name (输入OK)
  echo "$name It is a test"
  结果将是: OK It is a test
  同样双引号也可以省略
  如果变量与其它字符相连的话,需做如下处理:
  read mouth (输入8)
  echo "${mouth}-1-2009"
  结果将是: 8-1-2009
  变量赋值等号两边不能有空格
4.不换行(echo 默认是换行的)
  echo -n "hello world"
5.双引号内的特殊字符如$等,可以保有原本的特性
  var="lang is $LANG"
  echo $var
  输出结果是lang is en_US
6.单引号内的特殊字符则仅为一般字符(纯文本)
  var='lang is $LANG'
  echo $var
  输出结果是lang is $LANG
7.在一串命令中,还需要通过其他的命令提供的信息,可以使用反单引号`命令` 或 $(命令)。特别注意反单引号是数字键1左边的那个按键,而不是单引号。
  echo `date`
  echo $(data)
  结果将显示当前日期
  在一串命令中,在``之内的命令将会被先执行



read

read [-pt] variable
 -p : 后面可以接提示符
 -t : 后面可以接等待的“秒数”,时间到未作任何操作,略过此命令
 -s : 能够使read命令中输入的数据不显示在监视器上(实际上,数据是显示的,只是read命令将文本颜色设置成与背景相同的颜色)。
read之后不加任何参数,直接加上变量名称,那么下面就会主动出现一个空白行等待你的输入。

read -p "please input your name:" -t 30 name



expr
用于计算表达式的值(转自:http://www.cppblog.com/baby-fly/archive/2010/05/18/115685.html)

count=1
count=`expr $count + 1`
echo $count
输出为2

最好用$(())代替,效率更高
count=1
count=$(($count+1))
echo $count

也可以使用$[]
var=$[1+5]
echo $var  //6

count=1
var=$[$count+1]
echo $var

expr length String1  返回String1长度
expr index String1 String2  返回 String1 中包含 String2 中任意字符的第一个位置。
expr substr string1 startposition length 返回string1中从startposition开始的lenght个字符

 

 

 

declare(转自:http://www.cnblogs.com/fhefh/archive/2011/04/22/2024857.html)

declaretypeset内建命令(它们是完全相同的)可以用来限定变量的属性.这是在某些编程语言中使用的定义类型不严格的方式。命令declare是bash版本2之后才有的。命令typeset也可以在ksh脚本中运行。

declare/typeset 选项

-r 只读
   1 declare -r var1

(declare -r var1readonly var1作用相同)

这大致和C的const限定词相同.一个试图改变只读变量值的操作将会引起错误信息而失败.

-i 整数
   1 declare -i number
   2 # 脚本余下的部分会把"number"当作整数看待.		
   3 
   4 number=3
   5 echo "Number = $number"     # Number = 3
   6 
   7 number=three
   8 echo "Number = $number"     # Number = 0
   9 # 脚本尝试把字符串"three"作为整数来求值(译者注:当然会失败,所以出现值为0).

某些算术计算允许在被声明为整数的变量中完成,而不需要特别使用expr或let来完成。

   1 n=6/3
   2 echo "n = $n"       # n = 6/3
   3 
   4 declare -i n
   5 n=6/3
   6 echo "n = $n"       # n = 2
-a 数组
   1 declare -a indices

变量indices会被当作数组.

-f 函数
   1 declare -f

在脚本中没有带任何参数的declare -f 会列出所有在此脚本前面已定义的函数出来。

   1 declare -f function_name

declare -f function_name则只会列出指定的函数.

-x export
   1 declare -x var3

这样将声明一个变量作为脚本的环境变量而被导出。

-x var=$value
   1 declare -x var3=373

declare命令允许在声明变量类型的时候同时给变量赋值。



posted @ 2012-12-04 14:51  wust.zjf  阅读(1995)  评论(0编辑  收藏  举报