shell脚本笔记总结一

1.shell脚本的执行方法

当shell脚本以非交互的方式运行时,它会先查找环境变量ENV,该变量指定了一个环境文件(通常是.bashrc),然后从该环境变量文件开始执行,当读取了ENV文件后,SHELL才开始执行shell脚本中的内容。
shell脚本的执行通常可以采用以下三种方法:

  • bash script-name 或者 sh script-name
  • path/script-name 或者 ./script-name(当前路径下执行)
  • source script-name 或 . script-name(注意符号“.”与 script-name之间有空格)

第一种方法是脚本文件本身没有可执行权限时,通常使用的方法;
第二种方法需要先将脚本文件的权限改为可执行,然后通过脚本路径就可以直接执行;
第三中方法是在当前shell环境中直接执行,而不是新创建一个子shell,当我们需要在一个脚本中使用另一个脚本中的变量的时候就使用第三种方法

2.bash的变量类型

根据变量的生效范围等标准可分为:
本地变量:生效范围为当前shell进程,对当前shell之外的其他shell进程包括当前shell 的子shell 进程均无效;
环境变量:生效范围为当前shell进程及子进程;
局部变量:生效范围为当前shell进程中某代码片段(通常指函数);
位置变量:$1, $2, …来表示,用于让脚本在脚本代码 中调用通过命令行传递给它的参数
特殊变量:
这里写图片描述
本地变量
变量赋值:name=‘value’

  • 可以使用引用value:
    (1) 可以是直接字串; name=“root”
    (2) 变量引用:name=”$USER”
    (3) 命令引用:name=COMMAND name=$(COMMAND)
  • 变量引用:${name} $name
    “”:弱引用,其中的变量引用会被替换为变量值
    ”:强引用,其中的变量引用不会被替换为变量值,而保 持原字符串
  • 显示已定义的所有变量:set
  • 删除变量:unset name

环境变量

  • 变量声明、赋值:
    export name=VALUE
    declare -x name=VALUE
  • 变量引用: name, {name}
  • 显示所有环境变量: env printenv export declare -x
  • 删除变量: unset name

条件选择if语句
  • 单分支
    if 判断条件;then
            条件为真的分支
    fi

  • 双分支

      if 判断条件; then

           条件为真的分支代码
    else
           条件为假的分支代码
    fi

  • 多分支
    if 判断条件1; then
          条件为真的分支代码
    elif 判断条件2; then
          条件为真的分支代码
    elif 判断条件3; then
          条件为真的分支代码
    else
          以上条件都为假的分支代码
    fi

条件判断:case语句

case 变量引用 in             
PAT1)
      分支1
      ;;
PAT2)
      分支2
      ;;

*)
      默认分支
       ;;
esac

for循环
  • for    变量名    in    列表;do

         循环体
done

  • 执行机制: 依次将列表中的元素赋值给“变量名”; 每次赋值后即执 行一次循环体; 直到列表中的元素耗尽,循环结束
while循环

while CONDITION; do
      循环体
done

  • CONDITION:循环控制条件;进入循环之前,先做一次判 断;每一次循环之后会再次做判断;条件为“true”,则执行 一次循环;直到条件测试状态为“false”终止循环
  • 进入条件:CONDITION为true
  • 出条件:CONDITION为false
until循环
  • until CONDITION; do
          循环体
    done
  • 进入条件: CONDITION 为false
  • 退出条件: CONDITION 为true
循环控制语句continue

用于循环体中
continue [N]:提前结束第N层的本轮循环,而直接进入下一 轮判断;最内层为第1层
while CONDTIITON1; do
      CMD1
       …
if CONDITION2; then
      continue
fi
CMDN

done


脚本练习题

1.求0到50以内偶数的和。
这里写图片描述

2.打印九九乘法表
这里写图片描述

3.打印国际象棋盘
这里写图片描述
这里写图片描述

4.打印等腰三角形
这里写图片描述

5.这里写图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Linux Shell高级技巧实战总结 一、将输入信息转换为大写字符后再进行条件判断 二、为调试信息设置输出级别 三、判断参数是否为数字 四、判断整数变量的奇偶性 五、将Shell命令赋值给指定变量,以保证脚本的移植性 六、获取当前时间距纪元时间(1970年1月1日)所经过的天数 七、非直接引用变量 八、在循环中使用管道的技巧 九、自链接脚本 十、Here文档的使用技巧 十一、获取进程的运行时长(单位: 分钟) 十二、模拟简单的top命令 十三、格式化输出指定用户的当前运行进程 十四、用脚本完成which命令的基本功能 十五、验证输入信息是否合法 十六、整数验证 十七、判断指定的年份是否为闰年 十八、将单列显示转换为多列显示 十九、将文件的输出格式化为指定的宽度 二十、监控指定目录下磁盘使用空间过大的用户 二十一、编写一个更具可读性的df命令输出脚本 二十二、编写一个用于添加新用户的脚本 二十三、kill指定用户或指定终端的用户进程 二十四、判断用户输入(是/否)的便捷方法 二十五、通过FTP下载指定的文件 二十六、文件锁定 二十七、用小文件覆盖整个磁盘 二十八、统计当前系统中不同运行状态的进程数量 二十九、浮点数验证 三十、统计英文文章中每个单词出现的频率 Linux Shell经典实例解析--Oracle启动脚本(上) Linux Shell经典实例解析--Oracle启动脚本(下)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值