博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
学习笔记-5.2 shell编程1
阅读量:6452 次
发布时间:2019-06-23

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

shell编程

编译器 解释器

编程语言: 机器语言 汇编语言 高级语言

静态语言:编译型语言

   强类型(变量)

   事先转换成可执行格式 

   C C++ JAVA C#  

动态语言:解释型语言

   弱类型

   边解释边执行

   PHP SHELL Python perl

bash:(解释器本身是静态语言开发的)

面向对象 JAVA Python perl C++

面向过程 shell C

变量类型:事先定义数据的存储格式和长度

   字符

   数值

       整型

       浮点型:11.23 1.123*10^1

   布尔型

逻辑: 1 + 1 > 2

逻辑运算:与 或 非 异或(相同为0)

1:真

0:假

整型:8bit:256

      16bit:

      32bit:

      64bit

变量:内存空间 命名

内存:编址的存储单元

进程:

1+100

编程能力:

    脚本编程

shell:弱类型编程语言

强:变量在使用前,必须事先声明,甚至还需初始化:

    NULL:

弱: 变量用时声明:甚至不区别类型

变量赋值:VAR_NAME = VALUE

bash变量类型:

   环境变量

   本地变量(局部变量)

   位置变量

   特殊变量

本地变量:

(set 省略)VARNAME = VALUE:作用域为整个bash进程

局部变量:

local VALUENAME = VALUE,作用域为当前代码段

环境变量:作用域为当前shell进程及其子进程

export VARNAME = VALUE  

VARNAME = VALUE

export VARNAME

  “导出”

位置变量:

$1,$2,...

特殊变量:

$?:上一个命令的执行状态返回值

程序执行,可能有两类返回值:

             程序执行结果

             程序状态返回代码(0-255)

                  0:正确

              1-255:错误执行,系统预留:1,2,127

  每执行一个命令,后面紧跟一个执行echo $? ,状态返回代码

输出重定向:

> >> 2> 2>> &>

/dev/null 软件设备,bit bucket,数据黑洞

撤掉变量

unset VARNAME 撤销变量

查看当前shell中的变量:

set

包括环境变量和本地变量

查看当前shell中的环境变量

printenv

env

export

# ANIMALS = pig

# ANIMALS = $ANIMALS:goat

# A = 2

# B = 2

# C = $A + $B

# echo $C

2+3

脚本:命令的堆砌,按实际需要,结合命令流程控制机制实现的源程序

1 nano fist.sh #!(shebang指定程序的魔数)

 #!/bin/bash(第一行)

 #注释行,

  cat /etc/fstab

  ls /var

bash first.sh 不用给执行权限(好像也没指定路径)

脚本在执行时会启动一个子shell进程(pstree)

   命令行中启动的脚本会继承当前shell环境变量

   系统自动执行的脚本(非命令行启动)就需要自我定义需要各环境变量

    bash:

引用变量: $(VARNAME),括号有时可省略

双引号弱引用,其内的字符串做变量替换

单引号强引用,其内的字符串不做变量替换

练习:写一个脚本,完成以下任务

1 添加5个用户,user1,...,user5

2 每个用户的密码同用户名,而且要求,添加密码完成后不显示passwd

  命令的执行结果信息

3 每个用户添加完成后,都要显示用户某某已经成功添加

练习:写一个脚本,完成以下任务

1 使用一个变量保存一个用户名:

2 删除此变量中的用户,且一并删除其家目录

3 显示"用户删除完成"类的信息

本文转自飞行萌51CTO博客,原文链接: http://blog.51cto.com/8527508/1940557,如需转载请自行联系原作者

你可能感兴趣的文章
css中的hover ,关于li与a标签的问题
查看>>
转载:《TypeScript 中文入门教程》 16、Symbols
查看>>
java 读取world的图片 并把图片路径存入数据库
查看>>
storm配置:如何解决worker进程内存过小的问题
查看>>
spring-boot 测试
查看>>
iOS开发中FMDB的使用
查看>>
Prime is problem - 素数环问题
查看>>
C++ 类包含关系Demo 笔记
查看>>
J2EE请求和响应—Servlet
查看>>
UVa 442 Matrix Chain Multiplication(矩阵链,模拟栈)
查看>>
android toast几种使用方法
查看>>
POJ 3264 Balanced Lineup ST算法
查看>>
C++——STL中三种顺序容器的简要差别
查看>>
栅栏加解密python实现(支持密钥加密)
查看>>
第八届河南省赛D.引水工程(kruthcra+prime)
查看>>
【转】JSP使用上传文件,并生产高清缩略图示例
查看>>
mysql半同步复制问题排查
查看>>
OnEraseBkgnd、OnPaint与画面重绘
查看>>
SpringMVC @RequestBody接收Json对象字符串
查看>>
JavaScript、jQuery、HTML5、Node.js实例大全-读书笔记4
查看>>