1.条件表达式
- if[ -f file ] 如果文件存在
- if[ -d ... ] 如果目录存在
- if[ -s file ] 如果文件存在且非空
- if[ -r file ] 如果文件存在且可读
- if[ -w file ] 如果文件存在且可写
- if[ int1 -eq int2 ] 如果int1等于int2
- if[ int1 -ne int2 ] 如果不等于
- if[ int1 -ge int2 ] 如果>=
- if[ int1 -gt int2 ] 如果>
- if[ int1 -le int2 ] 如果<=
- if[ int1 -lt int2 ] 如果<
2.接收输入值
read -p "请输入回退的版本:" backid
echo $backid
3.读取文件夹内每个文件名,并输出
for name in `find . -type f -name"*"`
do
name=`echo "$name1"`
echo ${name}
done
4.NC命令探测端口是否占用并返回结果
NC=`nc -vv -z 11.5.0.44 1521 | awk '{print $2}'`
echo $NC
5.循环
do 循环s
et i=0 set j=0 for((i=0;i<10;))
do
let”j=j+1” echo “--------jis $j---------”
donewhile循环
set j=2
while true do
let”j=j+1” echo “--------jis $j---------” done
6.替换同一文件下其他文件中的指定字段并保存替换后的文件在changefile文件中
#!/bin/sh#请将此sh脚本放在待替换文件的文件夹中#待替换字段bef=ifp#字段替换为after=uloan#创建替换完成的文件存放目录if [ ! -d changefile ];thenmkdir changefileelseecho "changefile is alreadyexist"fi#循环读取每个文件for name in `find . -type f -name"*"`do#echo ${name#*/}#不处理change.sh文件if[ "${name#*/}" = "change.sh" ];thenecho ${name#*/}echo "this file shoule not bechange"elseecho "ready to change ${name#*/}"name2=`echo "${name#*/}"`cp $name2 ./changefile/$name2cd changefileecho "sed -i 's/"$bef"/"$after"/g'$name2" > sed.shchmod 777 sed.sh./sed.shrm -f sed.shecho "$name2 has changed"cd ..fidone
7.连接mysql数据库
#!/bin/sh#连接mysql数据库HOSTNAME="11.5.0.78"PORT="3307"USERNAME="root"PASSWORD="1q2w3e4R"DBNAME="shrcb_uloan_dev"select_sql="SELECT batch_def.* FROMbatch_def"mysql -h${HOSTNAME} -P${PORT} -u${USERNAME} -p${PASSWORD} ${DBNAME} -e "${select_sql}"
8.解压
解压tar -xvf $name压缩tar -zcvf $name name.tar.gz
9.截取字符串
echo ${name:开始位置:截取长度}
10.替换字符串
替换字符echo ${name}|tr " " "_"#空格替换为下划线替换字符串echo ${name/查找/替换}echo ${name//查找所有/替换}
11.连接oracle数据库并输出结果到文件
ORACLE_HOME=/soft/u01/app/oracle/product/11.2.0.4/db_1export ORACLE_HOMELD_LIBRARY_PATH=/soft/u01/app/oracle/product/11.2.0.4/db_1/lib:/lib:/usr/libexport LD_LIBRARY_PATHPATH=/soft/u01/app/oracle/product/11.2.0.4/db_1/bin:/usr/lib64/qt-3.3/bin:/usr/local/bin:/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/sbin:/soft/u01/app/oracle/binexport PATHexport NLS_LANG=".AL32utf8"echo "SET HEAD OFF ECHO OFF TERM OFFLINE 2000 PAGES 0 FEED OFF;" > test.sqlecho "SPOOL /soft/u01/app/oracle/SYM_ETL/data/CUR/JFQY/XPB/SL_45_INFO.dat;">> test.sqlecho "select * FROM SL_45_INFO ;">> test.sqlecho "SPOOL OFF;" >>test.sqlecho "EXIT;" >> test.sql$ORACLE_HOME/bin/sqlplus JFQY/JFQY@jfqy@test.sql<<EOFEOF
12.读取文件每一行内容
for line in `cat deploy.sh`doecho$linesleep 0.5scleandone