shell编程练习

一、参考网址

  1、Linux shell利用sed如何批量更改文件名详解

  2. Advanced Shell Scripting Techniques: Automating Complex Tasks with Bash

二、实战练习

1、把本目录下的所有.c文件拷贝到另一目录,并且重命名为.cxx文件

#!/bin/bash
set -x                              #打印每一步骤的执行结果
newdir=../xxx
rm -rf ${newdir}
mkdir ${newdir}
for file in `ls | grep '.c'`
do
    newfile=`echo $file | sed 's/\.c/\.cxx/g'`      #小数点之前需要加转义符,因为小数点在正则表达式中有特殊含义,表示“一定有一个任意字符”
    cp $file $newdir/$newfile
done

 

2、获取当前时间字符串

  命令格式:LC_TIME=en date +"%Y-%m-%d %H:%M:%S %Z"

  其LC_TIME表示“选择C语言环境的时间格式类别”

  结果如下:

 

3. 记录设备重启次数

#!/bin/sh

this_dir=`pwd`
BFILE=$this_dir/bootcount
echo "BFILE is $BFILE"
if [ -e $BFILE ]; then
    VALUE=`cat $BFILE`
else
    VALUE=0
fi
VALUE=$((VALUE+1))
echo $VALUE > $BFILE
sync
echo "VALURE is $VALUE"
ETH_STATUS=`cat /sys/class/net/enp0s3/carrier`   #判断网线是否连着
echo "ETH_STATUS is $ETH_STATUS"
#if [ $ETH_STATUS -eq 0 ]; then #在sh和bash中都支持
#if ((ETH_STATUS == 0)); then #在sh中不支持,提示“ETH_STATUS: not found”; 在bash中支持 if [ "X$ETH_STATUS" = "X0" ]; then #在/bin/sh用==会提示错误,在/bin/bash可以用== sleep 2 echo "00000" #reboot else echo "11111" fi

 

posted @ 2020-07-07 10:47  shanyu20  阅读(132)  评论(0编辑  收藏  举报