Shell脚本编程
#!/bin/bash
这一行决定了我的程序将会使用哪种编辑器。其作用可以理解成将路径引用到解释器。(linux中有多种解释器,例如bash,zsh,sh和csh)如果脚本中没有解释器,则将使用你的默认shell执行命令。这时,代码有可能正常运行,即便如此,还是不推荐这样做,使用echo $SHELL
可以知道你当前使用的解释器。
关于注释:
以#
开始,#
后面的内容会被解释器忽略。(#!不会)
关于变量:
变量指向内存中的一块区域。变量有变量名和值,存储可更改的数据,shell定义变量无需指定变量的类型。
变量的一些使用规则:
1、区分大小写 2、若要使用变量,须在变量名前面加$符号
用户输入:
read
命令接收键盘的输入,标准输入(Standard Input)
举例:read -p "PROMPT MESSAGE" VARIABLE (其中PROMPT MESSAGE为显示在屏幕上给用户看的信息,VARIABLE可以保存用户输入的信息,可在程序中使用)
关于测试:
测试主要用于条件判断。[ condition-to-test-for ]
,如[ -e /etc/passwd ](
[]
前后必须有空格,如[-e /etc/passwd]
是错误的写法)
关于条件判断:
shell脚本可以使用if-else
或if-elif-else基于条件进行判断。
if:
if [ condition-is-true ]
then
command 1
command 2
... ...
command N
fi
if-else:
if [ condition-is-true ]
then
command 1
elseif [ condition-is-true ]
then
command 2
elseif [ condition-is-true ]
then
command 3
else
command 4
fi
原文地址:https://www.cnblogs.com/lzzofc/p/11718378.html
- 启用WCF NetTcpBinding的共享端口
- asp中的md5/sha1/sha256算法收集
- UE4从零搭建CF游戏关卡(蓝图篇)
- 通用的序列号生成器库
- 利用Geneva开发SOA的安全模型
- STOMP协议介绍
- ADO.NET实体框架连接串引发的异常:Unable to load the specified metadata resource
- Mono产品生命周期
- WordPress免插件仅代码实现文章归档模板 II
- Paket 介绍
- C语言学不会,编程能力无法提升?你的问题我来解决!
- 实现WCF和Unity 的集成
- Qt中纯C++项目发布为dll的方法(超详细步骤)
- .NET的Actor模型:Orleans
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- Nginx证书和Tomcat证书能相互转化吗,请看这里
- 你真的理解 Webpack?请回答下列问题
- docker浅入深出3
- 绘图代码|多组学数据可视化的高端玩法
- Java单元测试——Mock技术配置
- 简单的场景分析LinearLayout 源码
- 避免栽坑之掌握Jenkins工作原理
- 如何检测JavaScript中的死循环?
- vue插槽2.6.0+
- 聊聊claudb的transaction command
- Lombok 的作者,成功讨伐 IntelliJ IDEA!
- springboot2之优雅处理返回值
- 通过NVM管理Node.js多版本
- 探究 Android 签名机制和原理
- “有迹可循”的灰盒测试分析