HOME 生活记录运维/编程
作者/来源:yixinu.com
栏目:运维/编程
日期:2012-04-07 18:33:51

IFS 内部域分隔符. 这个变量用来决定 Bash 在解释字符串时如何识别域,或者单词边界.


[root@bogon ~]# cat 10.sh 
#!/bin/bash
var="a:b:c:d:e:f"
IFS=':'
echo $var
[root@bogon ~]# ./10.sh
a b c d e f
[root@bogon ~]# 



位置参数:


example1:


#!/bin/bash

if [ $# -eq 0  ]
then
        echo -e "33[31m Please input... 33[0m"
else
        case $1 in
          a)
                in=1
                for temp in $@
                do
                        echo $temp
                        let "in=in+1"
                done
                echo $in
                ;;
          b)
                in=1
                for temp in $*
                do
                        echo $temp
                        ((in+=1))
                done
                echo $in
                ;;
          *) echo "This is default" ;;
       esac
fi

强制退出程序本身


example:


[root@bogon ~]# cat 11.sh 
#!/bin/bash

sleep 3

kill -9 $!
[root@bogon ~]# ./11.sh
kill: usage: kill [-s sigspec | -n signum | -sigspec] pid | jobspec ... or kill -l [sigspec]
[root@bogon ~]# 

字符长度



[root@bogon ~]# string=aaaaaaaaaaaaaaaaa
[root@bogon ~]# echo ${#string}
17
[root@bogon ~]# 

产生随机数


example1:  产生500以内的随机数


#!/bin/bash

RANGE=500
echo
i=1

while (( i<=10 ))
do
        number=$RANDOM
        let "number %= $RANGE"
        echo "Random number less than $RANGE  ---  $number"
        let "i+=1"
done
example2:产生不同的随机数



[root@bogon ~]# cat 11.sh
#!/bin/bash

MAXCOUNT=10
COUNT=1

echo  "============================="

while ((COUNT <= MAXCOUNT))
do
        number=$RANDOM
        echo $number
        let "COUNT+=1"
done
echo "=============================="
[root@bogon ~]# ./11.sh 
=============================
684
7658
31179
562
17402
2483
25889
25079
13323
27835
==============================
[root@bogon ~]# 



变量的间接引用


example:


#!/bin/bash
B="hello world"
A=B  #变量A的值是另一个变量的名字
eval C=$$A  #使用eval  格式 为 eval var1=$$var2
echo $C


从前面开始移除字符串

    • ${string #substring}仅移除最先匹配的部分
    • ${string ##substring}只要是匹配统统移除

example: 


[root@bogon ~]# cat 13.sh
#!/bin/bash
VAR="/bin/bash"
echo ${VAR##/*n}
[root@bogon ~]# bash 13.sh
/bash
[root@bogon ~]# 

从后面开始移除字符串


    •${string%substring}仅移除从后面开始最先匹配的部分
    •${string%%substring}只要是匹配统统移除

example:改变文件后缀名


#!/bin/bash
DIR=$1
EX="txT TXt tXt TxT tXT txt Txt TXT"
for line in $EX
do
        old=$line
        new=txt
        for FILE in $(find $DIR -name "*.$old")
        do
                mv $FILE ${FILE%%$old}$new
        done
done

字符串的替换

example


[root@bogon ~]# cat 15.sh
#!/bin/bash
STR="abc123def456ghi"
echo $STR
echo '======${STR/abc/xyz}=========='
echo ${STR/abc/xyz}
[root@bogon ~]# bash 15.sh
abc123def456ghi
======${STR/abc/xyz}==========
xyz123def456ghi
[root@bogon ~]# 

参数替换:

未做



分享到:

Copyright © 2013-2014 yixinu.com 湘ICP备14004402号

QQ:316686606  Email: 316686606@qq.com