作者/来源: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 ~]#
参数替换:
未做
