- 论坛徽章:
- 0
|
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 |
|