免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 862 | 回复: 0
打印 上一主题 下一主题

shell script基础(六) [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2008-01-18 17:14 |只看该作者 |倒序浏览

Shift指令与自定义函数

(1)shift指令
Shift用来将指令列参数向左移
例:$1=-r   $2=file1  $3=file2
执行shift指令后变成
$1=file1  $2=file2

例1:shift指令常与while或until合用。下面例子将一个文件中的小写字母全部转换成大写字母。

#!/bin/bash
while [ "$1" ]
do
     if [ "$1" = "-i" ]
     then
       infile="$2"
       shift 2
     elif [ "$1" = "-o" ]
     then
       outfile="$2"
       shift 2
    else
      echo "Program $0 does not recognize option $1"
    fi
  done
  tr a-z A-Z $outfile

[jun_xu@www ~]$ ./upcase -i myrouter.txt -o my.out
[jun_xu@www ~]$ cat myrouter.txt
#!/bin/bash
my_router=$PWD
echo $my_router
[jun_xu@www ~]$ cat my.out
#!/BIN/BASH
MY_ROUTER=$PWD
ECHO $MY_ROUTER

(2)自定义函数
语法:
fname()
{
Commands
[ return exit_value]
}

例2:自定义一个取最大值的函数
#!/bin/bash
max()
{
  while [ $1 ]
  do
   if [ $maxvalue ]
   then
     if [ $1 -gt $maxvalue ]
     then
       maxvalue=$1
     fi
   else
     maxvalue=$1
   fi
   shift
done
return $maxvalue
}

max $@
echo "Max value is:" $maxvalue

[jun_xu@www ~]$ maxvalue 368 52 68 7 915 24
Max value is: 915

输入环境变量
export与source指令
export指令能将script文件内的变量输出给出其它的指令使用,格式:
var1=123
var2=/usr/bin

export var1 var2…
command

source指令是将环境变量保留于当前shell当中
source script_name
(完)


本文来自ChinaUnix博客,如果查看原文请点:http://blog.chinaunix.net/u1/56188/showart_467264.html
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP