shell的意义和for循环的使用

shell的意义

shell是Linux里的通用语言,虽然与java等编程语言相比,编程能力不强、语法生僻。但可以与Linux命令无缝结合,在系统管理、运维、日志分析等方便有独立的便利优势。

举例:

  1. 与Oracle impdump/expdump工具结合,实现整库的导入导出;
  2. 与Oracle rman工具结合,实现自动备份;
  3. 用grep实现日志分析,查找发生异常应的表,简直有SQL般畅快的感觉;
  4. 批量查找头文件、分析包含的函数差异,比手工快n倍。

for的一般结构

for var in lists
do
  command;
done

for遍历字符串列表

#!/bin/bash

LOGFILE=./findResult.log
for i in stdio.h  errno.h   string.h stdlib.h ;
do
  echo $i | tee -a $LOGFILE
  find /usr/lib/gcc/x86_64-redhat-linux -name $i | tee -a $LOGFILE
  find /usr/local/include -name $i | tee -a $LOGFILE
  find /usr/include -name $i | tee -a $LOGFILE
done

注意:
字符列表是直接写的,不用单引号、双引号;如果写了,会认为是1个字符串。

用双引号处理特殊字符

for i in I "don't" know if "this'll" work
do
        echo word is :$i
done

从命令结果读取

for i in `cat states.txt`
do
        echo the word is:$i
done

从文件列表读取

curdir=`pwd`

for i in `ls $curdir`
do
    if [ -d "$i" ]
    then
            echo "$i is a directory"
    elif [ -f "$i" ]
    then
            echo "$i is a file"
    fi
done

shell中变量使用注意

1.变量不用声明,直接用
2.变量没有类型
3.赋值给变量名;引用要加$符号
4.""内的变量会识别;’'内的变量不识别;

猜你喜欢

转载自blog.csdn.net/heroicpoem/article/details/108078960