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 @   shanyu20  阅读(133)  评论(0编辑  收藏  举报
编辑推荐:
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
阅读排行:
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 25岁的心里话
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 按钮权限的设计及实现
点击右上角即可分享
微信分享提示