!#/bin/bash ---Bourne Again Shell(shell script interpertor)
##----variable
your_name="JinWuen"
echo $your_name ## or ${your_name}
##----delete variable
unset your_name
##----string
your_name="qinjx"
greeting="hello, "$your_name" !"
greeting_1="hello, ${your_name} !" ##--string paste
echo $greeting $greeting_1
string="abcd"
echo ${#string} #output 4
##expression
#表达式和运算符之间要有空格,例如 2+2 是不对的,必须写成 2 + 2,
#这与我们熟悉的大多数编程语言不一样。
val=`expr 2 + 2`
echo "两数之和为 : $val"
##两个输出函数 echo printf --printf 的移植性比echo要好。
一个示例:实现了在扫描一个文件夹内的全部*.txt文件,并处理每个文件的内容,最终把处理好的数据插入数据库。
function ReadTables()
{
for i in `ls *.txt`
do
if [-r "$i" ];
then ReadTables "$i"
else
filename= '$i'
#dt=`cat $i | awk 'gsub(/\//,""){print}'`
dt=`cat $i | awk 'gsub(/\//,""){if (NR==3) print $1}'` #2018/01/08>20180108
#channel=`cat $i | awk 'NR==1{print $2}'`
#channel=`cat $i | awk 'NR==1{if (gsub(/-/,"")) print $2; else print $2}'` #cctv-1>cctv1,else keep the same
channel=`cat $i | awk 'NR==1{if (gsub(/-*(高清)?[a-z]|-/,"")) print $2; else print $2}'`
rownm=`cat $i | awk 'END{print NR}'`
let rownm_s=${rownm}-1 ##let it be a number
#insert date, channel, time and program into table
for p in `seq 5 ${rownm_s}`
do
tm=`cat $i | awk '{if (NR=='$p') print $1}'`
pro=`cat $i | awk '{if (NR=='$p') print $2}'`
insert_table_sql="insert into ${TABLENAME}(date,channel,time,program) values('${dt}','${channel}','${tm}','${pro}')"
mysql -h${HOSTNAME} -u${USERNAME} -p${PASSWORD} -D ${DBNAME} -e "${insert_table_sql}"
done
fi
done
}
ReadTables schedule_utf8