作者/来源: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" doneexample2:产生不同的随机数
[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 ~]#
参数替换:
未做