shell 笔记

103 阅读1分钟

读取命令行参数 并进行判断

envopt=$1

if [[ -z ${envopt} ]]
then
    menu
    read -p "请选择 : " option
else
    option=${envopt}
    envopt=""
fi

循环查找指定文件

???

查找 find

shell下的find命令我总也记不住,可能是使用树状结构太肌肉记忆了,导致找文件的时候比较习惯一级一级展开。

find . -name '*cfchxaev*

循环删除文件

背景: 当文件夹下存在大量文件时,执行rm * 会出现参数太多的报错,因此需要分解一下任务。

success=0
for i in `ls core.*`                
do
  #成功信息重定向输出到info.txt
  echo "delete success: $i" >> info.txt
  rm -rf $i
  success=`expr $success + 1`
done
echo "success delete num: $success"

注意 当ls也报参数超长时,可以使用 `ls` 替换 `ls core.*` 没有参数,也就没有参数超长问题。