shel 编程拾锦

本文主要是一些shell编程的总结,比较基础

1、 if 语句中变量与特定值比较

if [ "$#" -eq "3" ]; then
	echo "####"
else
	echo "###"
fi


2、时间戳

today=`date "+%Y%m%d"`


3、书写路径

LOG=/home/boy
NEWLOG=$LOG/newlog.log
LOG=/home/boy/
NEWLOG=$LOG"newlog.log"


4、等于号 = , c/c++同仁么要注意!!!!!

     不等于号 !=


5、日志函数

logfile=/home/boy/log/20131105.log
writeLog()
{
	time=`date "+%D%T"`
	echo "[ $time ]  $1" >> $logfile
	# whether output to screen
	if [ "$2" = "ok" ]; then
		echo "$1"
	fi
}


6、包含多个条件的if语句

if [ -f "1.conf" -a -f "2.conf" -a -f "3.conf" ];then
	echo "###"
fi

if [ -f "1.conf" ] && [ -f "2.conf" ] && [ -f "3.conf" ];then
	echo "###"
fi

-a 和&& 还是有点区别的。第一种情况下三个条件都会计算,而第二种则是短路逻辑的形式。就是只在前一个条件成立的情况下计算下面的条件。


7、提取变量的值

TEST=128.10.10.34
echo $TEST | cut -d= -f2
cat $FILE | cut -d= -f2  # cat主要用于文件

if [ "$NUM" = "" ];then  #NUM=`echo $TEST | cut -d= -f2`
	echo "##"
fi


8、grep使用必知

grep中可以使用正则表达式。

grep匹配成功,$?=0, 否则为1

TEMP=`echo $NUM | grep NUM`
if [ "$TEMP" = "" ];then
	echo "###"
fi


9、获取目录下文件个数

NUM=`ls | wc -l`
NUM`ls | grep tar.gz | wc -l` #添加额外的过滤条件


10、使用循环扫描变量

for line in $FILES
do
	echo $line
done


11、打印变量值

NUM="boy"
echo "he is a $NUM" # 推荐
echo "he is a "$NUM""
echo "he is a ${NUM}"


12、scp使用

scp /home/boy/log.txt root@111.10.23.3:/tmp/log
scp filepath root@$IP:$DIR


13、如何在远程服务器执行语句

ssh 10.0.119.10 "cat temp.txt; ls -al; python newpy.py"

在实际工作中,可以先将需要在远程服务器中执行的脚本scp过去,然后,

ssh 10.0.119.10 "sh script.sh" 


14、函数参数个数

sh test.sh he is a boy

$#=4, 参数个数是不包括函数名的。区别与c语言中main函数的argc。


15、调试技巧

有时候为了调试脚本的方便,可以在脚本中将一些重要的信息打印出来。为了是该信息更加明显,可以用一些特殊的符号,如# * -之类的。

echo "#################$INFO#################"


16、执行变量中的语句

NUM="ls -a"
eval $NUM

17、去除重复行,仅显示唯一行

sort     LINES | uniq 
LINES为变量


18、计算变量值

NUM=3
$((++NUM))=4 






  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值