shell总结(5)

shell小结(5)
-------------------------------------------------------

shift关键字

#!/bin/bash

fun()
{
	echo $1
	shift
	echo $1
}

fun a b c

-------------------------------------------------------

function wrap
{
    #set -x
    typeset func_name="wrap"
    typeset ret=""
    #执行业务调用的脚本或者命令
    $@
    ret=$?
    return ${ret}
    
}

---------------------------------------------------------
grep -c 统计找到的行数
if [ `echo "$0" |grep -c "/" ` -gt 0 ];then
    cd ${0%/*}
fi

----------------------------------------------------
 数组的长度:
 typeset length
 length=${#filearray[@]} 

-------------------------------------------------------

由端口:netstat -anp -->找到进程,然后ps-ef 找到用户
-------------------------------------------------------
中文编码范围:[\\u4e00-\\u9fa5] 


-------------------------------------------------------

//利用IFS处理文件

IFS=Internal Field Separator 
用在shell中,控制分隔符,在for。。in的语法中很有用。 

回车的设置应该使用IFS=$'\n'的格式 或IFS=$"\n"


如:
#!/bin/bash

name=aa:bb:cc:dd

for i in $name
do
	echo $i
done
输出为:aa:bb:cc:dd


#!/bin/bash

name=aa:bb:cc:dd

IFS=":"

for i in $name
do
	echo $i
done
输出为:aa
		bb
		cc
		dd


循环读取文件的每一行
#!/bin/bash

IFS=$'\n'

for line in $(cat text.txt)
do
        echo $line
done

-------------------------------------------------------
PS2 is called the secondary prompt string; its default value is >. 
It is used when you type an incomplete line and hit RETURN, as an indication that
 you must finish your command. For example, assume that you start a quoted string 
 but don't close the quote. Then if you hit RETURN, the shell will print > and wait 
 for you to finish the string:

-------------------------------------------------------
BASH 中要求函数的定义必须在函数使用之前,这是和 C 语言用头文件说明函数方法的不同。
定义的三种方式:
funtion fun1()
{
}

#后面可以没有()
funtionc fun1
{
}

#后面必须有()
fun1()
{
}
-------------------------------------------------------