1:shell脚本实现for循环:for
示例:
#!/bin/bash
echo "number of arguments is $#"
echo "What you input is: "
# $@:输入的参数
for argument in "$@"
do
echo "$argument"
done
2:shell脚本实现字符串切割:split
示例:
str="hello,world,i,like,you,babalala"
arr=(${str//,/ })
示例:str按照","切分成一个数组,并遍历输出
#!/bin/bash
str="hello,world,i,like,you,babalala"
arr=(${str//,/ })
for i in ${arr[@]}
do
echo $i
done
3:shell中字符串替换:sed
语法:sed "s/要被替换的字符串/新的字符串/g" file
#将文件名为example的文件中的test替换为mytest。
#如果没有g标记,则只有每行第一个匹配的test被替换成mytest。
sed "s/test/mytest/g" example
示例:
#!/bin/bash
sed -i "s/172.30.0.122:1521:iboxpay/要替换的IP:端口:实例/g" /home/wdk/proxool.xml
sed -i "s/tst/要替换的数据库用户名/g" /home/wdk/proxool.xml
sed -i "s/ok/要替换的数据库密码/g" /home/wdk/proxool.xml
cat /home/wdk/proxool.xml
4:shell脚本三剑客:grep、sed、awk
awk示例
5:shell脚本中将shell命令赋值给变量
# shell脚本输出当前目录:英文符号的``引用
home =`pwd`
# shell脚本输出前一级的目录:
home=`cd ../ && pwd`
6:shell脚本创建文件夹:mkdir
注:一般使用 -p 即可。mkdir -p xx
-p:递归创建目录,如果目录事先存在,也不会报错*
-m:设置新创建的目录的默认目录对应的权限
-v:显示创建的过程
7:shell脚本的拷贝:cp
注:一般使用 cp -rf source target 即可。
-a:此选项通常在复制目录时使用,它保留链接、文件属性,并复制目录下的所有内容。其作用等于dpR参数组合。
-d:复制时保留链接。这里所说的链接相当于Windows系统中的快捷方式。
-f:覆盖已经存在的目标文件而不给出提示。
-i:与-f选项相反,在覆盖目标文件之前给出提示,要求用户确认是否覆盖,回答"y"时目标文件将被覆盖。
-p:除复制文件的内容外,还把修改时间和访问权限也复制到新文件中。
-r:若给出的源文件是一个目录文件,此时将复制该目录下所有的子目录和文件。
-l:不复制文件,只是生成链接文件。
8:shell脚本读取".properties"文件
封装了以下读取".properties"文件的函数,
e.g:echo $(getVarFormProperties "test" "config.properties")
function getVarFormProperties(){
# echo awk -v ri="/^$1=/" -F "=" '$0~ri{print $2}' $2
# 此处^$1=为了使匹配能够全字匹配
# -v 设置变量ri,为了能在awk中使用变量传递
echo $(awk -v ri="^$1=" -F "^$1=" '$0~ri{print $2}' $2)
}