前言为了提高教学质量,并且能够让童鞋们更好的理解和运用shell脚本以及相关编程,特编写了50个shell例子,目前还在整理过程ing,计划分三期完成。请有需要的同学收藏。后续会申请VIP阅读。…… ^.^ …… ^…^ 实验环境:WSL2 for unbuntu2204 编辑器:vi shell环境:ubuntu2204默认的bash 一、shell执行方式:第一种:PATH 环境变量的默认值不包含当前目录, 若脚本文件在当前目录,应使用 ./script-file 使用文本编辑器编辑好, 为脚本文件添加可执行权限 chmod +x script-file ./script-file 第二种:PATH 环境变量的默认值包含 ~/bin 目录, 用户可以将自己的脚本文件存放在 ~/bin 目录, 之后即可直接调用脚本文件名执行脚本了 在子Shell中执行 bash script-file script-file 在当前Shell中执行 source script-file . script-file 注意调用bash和sh区别:
| |
常用调试法: Bash [-x] [-n] [-v] scriptName -x 让用户跟踪脚本的执行,此时 shell 对脚本中每条命令的处理过程为:先执行替换,然后显示,再执行它。shell 显示脚本中的行时,会在行首添加一个加号 “ + ”。 -n 对脚本进行语法检查,但不执行;若存在语法错误提示。 -v 在执行脚本之前,按输入的原样打印脚本中的各行。 使用bash内置命令set使整个或部分脚本处于调试模式: 开启:set [-x] [-n] [-v] 结束:set [+x] [+n] [+v] | |
二、命令执行过程:
| |
三、具体实例:一些符号解释:省略,请童鞋门自己备注或者笔记!! | |
Eg1,read的使用
Bash [-x] ex4read.sh | |
Eg2.if分支语句的使用
| |
Eg3.分支语句ifelse的使用
| |
Eg4,实现小于12的阶乘: | |
执行结果: code:
|
Eg5、shell变量的综合应用实例 | |
code: 【 注意: 变量=赋值,空格的使用; “”、‘’和`` 的区别使用; 注意wins下编辑复制到linux下的vi需要:set ff=unix回车 ; 建议set -x开启debug模式。 】
| |
执行结果如下:1 3 5 7 9 执行另一个结果如下:1 a 3 b 5 c 7 d 9 e |
Eg6、编写一个程序判断/bin目录下的date文件是否存在 | |
code:
| |
执行结果: |
Eg7、检查id的脚本 |
#!/bin/bash ## filename: idcheck.sh # purpose: check user id to see if user is root. # Only root has a uid of 0. # Format for id output: # uid=9496(ellie) gid=40 groups=40 # root's uid=0 # 使用bash执行正常,./执行也ok,sh执行出错! id=`id | awk -F'[=(]' '{print $2}'` # get user ID echo "your user id is: $id" if (( id == 0 )) # [ $id -eq 0 ] then echo "you are superuser." else echo "you are not superuser." fi |
--------------------------------------------------------------分隔符------------------------------------------------------------ 21-40个例子后续补充! |