6-2 shell编程基础

时间:2019-10-08 17:09:00   收藏:0   阅读:95

shell编程基础

编程基础

Linus:Talk is cheap, show me the code

程序和编程风格

程序:

程序编程风格:

shell程序:提供了编程能力,解释执行

程序的执行方式

计算机:运行二进制指令
编程语言:人与计算机之间交互的语言
低级编程语言:

编程逻辑处理方式

顺序执行
选择执行
技术分享图片
循环执行
技术分享图片

编程基本结构

shell编程:过程式、解释执行

shell脚本基础

shell脚本:

格式要求:首行shebang机制

shell脚本的用途有:

创建shell脚本

第一步:使用文本编辑器来创建文本文件

第二步:运行脚本

脚本规范

脚本代码开头约定

  1. 第一行一般为调用使用的语言
  2. 程序名,避免更改文件名为无法找到正确的文件
  3. 版本号
  4. 更改后的时间
  5. 作者相关信息
  6. 该程序的作用,及注意事项
  7. 最后是各版本的更新简要说明

脚本的基本结构

脚本的基本结构

!SHEBANG

CONFIGURATION_VARIABLES
FUNCTION_DEFINITIONS
MAIN_CODE

shell脚本示例

#!/bin/bash
# ------------------------------------------
# Filename:                     hello.sh
# Revision:                     1.0
# Date:                         2019/10/08
# Author:                       kjAlbert
# Description:                  This is the script
# Copyright:                    2019 kjAlbert
# License:                      GPL
# ------------------------------------------
echo “hello world”

脚本调试

如果命令错误,报个错继续执行,语法错误会导致后续命令不再执行
bash -n FILE 可以检查语法错误,但也只能检查语法错误
bash -x FILE 可以显示一步一步的效果

变量

变量:命名的内存空间
变量:变量类型

静态编译语言:使用变量前,先声明变量类型,之后类型不能改变,在编译时检查,如:java,c
动态编译语言:不用事先声明,可随时改变类型,如:bash,Python
强类型语言:不同类型数据操作,必须经过强制转换才同一类型才能运算,如java , c# ,python

print('magedu'+ 10)         #提示出错,不会自动转换类型
print('magedu'+str(10))     #结果为magedu10,需要显示转换类型

弱类型语言:语言的运行时会隐式做数据类型转换。无须指定类型,默认均为字符型;参与运算会自动进行隐式类型转换;变量无须事先定义可直接调用

技术分享图片

Shell中变量命名法则

  1. 不能使程序中的保留字:如:if, for
  2. 只能使用数字、字母及下划线,且不能以数字开头
  3. 见名知义
  4. 统一命名规则:驼峰命名法

Shell中命名建议规则:

  1. 变量名大写
  2. 局部变量小写
  3. 函数名小写
  4. 用英文名字,并体现出实际作用

变量种类

根据变量的生效范围等标准划分下面变量类型

局部变量

变量赋值:name=‘value‘
可以使用引用value

  1. 可以是直接字串:name=‘root‘
  2. 变量引用:name="$USER"
  3. 命令引用:name=COMMAND;name=$(COMMAND)

变量引用:${name} 或者 $name

显示已定义的所有变量:set
删除变量:unset name

环境变量

变量声明、赋值:

变量引用:

显示所有环境变量:

删除变量:

bash内建的环境变量

引用变脸时需要紧跟数字时,用花括号把变量括起来就好了
echo $BASHPID 显示当前进程pid

环境变量:export 改动之后,不改变父进程的变量,再创建紫禁城就编程新的了
不完全切换,环境变量不切换
$_ 上一个命令的最后一个单词

只读变量和位置变量

只读变量:只能声明,但不能修改和删除

退出状态

进程使用退出状态来报告成功或失败

原文:https://www.cnblogs.com/kjalbert/p/11635833.html

评论(0
© 2014 bubuko.com 版权所有 - 联系我们:wmxa8@hotmail.com
打开技术之扣,分享程序人生!