博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
NO3.Shell脚本学习——编写Shell脚本
阅读量:7042 次
发布时间:2019-06-28

本文共 1322 字,大约阅读时间需要 4 分钟。

Shell脚本

  1. 用途:完成特定的、较复杂的系统管理任务。
  2. 格式:集中保存多条Linux命令,普通文本文件
  3. 执行方式:按照预设的顺序依次执行的命令

执行Shell脚本的方式:

1.bash test.sh
//不需要写解析器
//不需要给脚本设置执行权限

  1. ./test.sh
    //需要写解析器——脚本首行
    #!/bin/bash
    //需要给脚本设置执行权限
    chmod a+x test.sh

写个Shell的小例子

test.sh:

#!/bin/bashecho '23123123'echo 'disk space:'echodf -Thechoecho 'free space:'free -m

小例子:每周五17:30 清理FTP服务器的公共共享目录

检查/var/ftp/pub/ 目录,将其中所有子目录及文件的详细列表、当时的时间信息追加保存到/var/log/pubdir.log日志文件中,然后清空该目录
示例:

vi /opt/ftpclean.sh `#!/bin/bash date >> /var/log/pubdir.log ls -lhR /var/ftp/pub >> /var/log/pubdir.lg rm -rf /var/ftp/pub/* crontab -e 30 17 * * 5  /opt/ftpclean.sh`

Shell变量种类

  1. 用户自定义变量 name="user1" 引用:${name}
  2. 预定义变量
  3. 位置变量**

输入赋值:read [-p "信息"] 变量名

双引号:能解析变量
单引号:不能解析变量
反引号:解析命令并输出

删除变量:unset 变量名

位置变量(传参):

test.sh#!/bin/bash#test.shecho $1echo $2echo $3echo $4echo $5echo $6echo $7echo $8

调用:sh test.sh 1 2 3 4 5 6 7 ...(最多识别9个)

执行结果:
1
2
3
4
5
6
7
...
预定义变量:
$#:命令行中位置参数的个数
$*:所有参数的内容
$?:上一条命令执行后返回的状态,当返回状态值为0时表示执行正常,非0表示执行异常或出错
$0:当前执行的进程/程序名

shell计算

$(($1+$2)) (不需要转义) or expr 2 + 3 +4 (需要转义)
expr 4 * 2
expr 4 / 2
expr 4 % 2
and so on...

shell输入、输出

输入
``
echo -n||e
-n
-e可以解析转义字符

//设置字体颜色

echo -e "httped process \033[32;40m[OK]\033[0m"
\033[前景颜色;背景颜色m
\033[0m恢复到系统默认的颜色
前景颜色:30-37
背景颜色:40-47
<br/>**输出**<br/>
cat、head(首n行)、tail(尾n行)、tee(输出一份并保存一份)、nl(加行号)
``

转载于:https://blog.51cto.com/9victor9/2053130

你可能感兴趣的文章
写一个简单的运行Django项目的脚本
查看>>
Django
查看>>
解决 ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YE
查看>>
iOS开发如何实现消息推送机制
查看>>
Android xml application属性详解
查看>>
Android Push Notification实现信息推送使用
查看>>
elk6.4(rpm)安装及kibana汉化
查看>>
发表图片, 弹出界面, 类似QQ发说说时候添加照片的界面(不太会说,见谅)
查看>>
js语句执行顺序
查看>>
Android短信开发相关信息记录
查看>>
jdk堆、栈的分析工具--jmap、jstack
查看>>
target和currentTarget的区别
查看>>
RSpec控制器测试重构
查看>>
split,tr,cut,tac
查看>>
Activity的四种加载方式
查看>>
Babel的register特性使用
查看>>
Vim的分屏功能
查看>>
linux各种版本静态IP设置
查看>>
Android改包1
查看>>
spring 配置线程池
查看>>