1、if语句逻辑判断
if[ "$variable" -eq ""$variable" ]语句的执行前面需要添加空格,否则执行会出现错误。
2、echo > filename和echo >> filename一定要看清楚,
’>‘会覆盖之前的内容,‘>>'则会在之前内容后面加上新内容
3、printf ”words“ 和echo somewords都输入到文本中去可以看出,
printf之后,光标留在current line,而echo之后,光标到a new line!想要使echo不换行,则需要使用echo -n somewords。
4、判断一个文件是否为空的方法:
最简单莫过于直接使用测试语句,即
if [ -s emptyfile ];then
echo not empty
else
echo empty
fi
输出:empty
5、 判断一个文件夹下是否有一个文件的方法是:
if [ `ls 目录|grep filename` ];then
echo exit
else
echo nonexit
fi
6、count问题:
发现在做加法的时候不管是count=count+1,还是count=$count+1,竟然都进不去,始终是添加字符的操作;
最终发现,这种加减的方法是不对的,可以参照以下网页进行
http://gngzhh1.blog.163.com/blog/static/2049078920141168420686/
而最终我的方法采用了最常见的
let ”count=$count+1“,其实((count=count+1))也非常方便。
7、从文件中取出字符:count=`cat filename`,
读入字符到文件中去:echo $count > filename
8、printf "\r"的神奇,就运行以下程序
(参考网址:http://blog.csdn.net/zhuying_linux/article/details/6798083)
9、使用seq和tac来完成倒计时功能,下面是10s倒计时实例:
seq 10 | tac | awk '{printf "\r%s%d%s","waiting for a minute...",$0,"...";system("sleep 1")}'
10、变量的拼接:
对于地址变量来说,不能在前面使用还没有定义的变量作为地址变量的名称,例如:
ADDR=/home/test[$count].txt
for((i=0; i<=5; i++))
do
echo 123456 >$ADDR
echo $ADDR
done
由于变量还没有定义,所以在后面直接引用得不到想要的效果,引用变量应处于已定义的范围内,所以改程序改为
ADDR1=/home
for((i=0; i<=5; i++))
do
ADDR=/test[$count].txt
echo 123456 >$ADDR
echo $ADDR
done
即可。