够用的 shell 脚本
2020-10-15 23:38
1201 查看
shell 脚本随处可见,甚至有些项目就是由 shell 脚本组成的
如果你想使用 shell 脚本自动化执行流程,或者看懂 shell 脚本,需要哪些知识呢
这里简单讲几个点
0 shell 适用于什么情况?
- 小工具
- 包装脚本编译代码
- 调用其他高级语言(调度)
- 少量的数据处理
1 获得参数
$ example_command 1 2 3
在执行命令后面加了三个参数
在程序中可以这样获取
# 命令本身,即: example_command echo $0 # 1 echo $1 # 2 echo $2 # 3 echo $3
如果是一个 shell 函数要获取参数呢?
也是类似!
function_call () { echo $1 } function_call "call function"
2 如何模块化
借助 source 命令
# a.sh function function_a() { echo 'a'
# 函数内部变量尽量使用 local 关键字,作用域能够限制在当前函数中
local b=1 } # b.sh source a.sh function_a
3 提示是否继续
while true; do read -r -p "Step $preStep done! Next Step is $nextStep. Are You Sure Continue? [Y/N] " input case $input in [yY][eE][sS] | [yY]) echo "Continue" break ;; [nN][oO] | [nN]) echo "opt exit, done." exit 1 ;; *) echo "Invalid input..." ;; esac done
如果不想输入错误一直提示,可以去掉 while 循环
4 调试 shell 脚本
- 多加 echo ,输出有用信息
- 使用 set -x 命令
set -x 命令输出示例:
# a.sh set -x a='aaaaaaaa' echo $@ echo "$@" echo $* echo "$*"
5 计算
有几种方式可以在 shell 中计算
但是这里只说一种
那就是双括号的形式
# a.sh # 双括号中不能使用 $n 表示变量 ((n = 10 / 3)) echo $n
6 shell 判断
shell 的 test 提供了很多比较实用的比较方式
比如:
-e: 文件存在 -f: 文件存在并且是普通文件
停,如果全列出来就没意思了,只能是授之以鱼
通过命令 man test 可以看到更详细的判断语法
相关文章推荐
- 马哥分享的25段shell脚本代码,日常工作基本够用
- 用shell脚本运行Java程序
- shell脚本编程(一)
- 在shell脚本里执行sudo 命令
- shell脚本中$的用处
- Linux 下使用shell脚本定时维护数据库的案例
- shell脚本练习001
- 开发自动化系统管理脚本(shell) 推荐
- Linux 服务器系统监控脚本 Shell【转】
- 菜鸟--shell脚本编写之解决问题篇
- 如何在交互式shell脚本中创建对话框
- Shell脚本编程(一)——基本语法
- 可显示Android设备选择列表,并进入指定Android设备Console的Shell脚本
- shell脚本学习总结
- dd wipe 命令磁盘清空shell脚本,笔记本台机MAC通用
- shell 脚本实战笔记(7)--集群网络相关知识和环境搭建
- Linux_Shell 服务器互通脚本, 第一次通信 自动记入 know_hosts
- [shell]Linux脚本开头#!/bin/bash和#!/bin/sh是什么意思以及区别
- shell 脚本实现nginx的服务状态
- shell 脚本切换用户