开发者社区> 技术小甜> 正文

学习笔记-5.2 shell编程1

简介:
+关注继续查看

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,如需转载请自行联系原作者








版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
JSP - 起源、执行过程、运行原理、生命周期
JSP - 起源、执行过程、运行原理、生命周期
5 0
Travis CI简介
什么是持续集成? Travis CI 提供的是持续集成服务(Continuous Integration,简称 CI)。它绑定 Github 上面的项目,只要有新的代码,就会自动抓取。然后,提供一个运行环境,执行测试,完成构建,还能部署到服务器。
8 0
这个开源项目绝绝子,一键生成好玩的矢量风格头像!
最近逛 GitHub,发现了一个非常好玩的开源项目——头像生成器,给大家分享一下~
4 0
变量、常量
变量、常量
4 0
在函数中使用局部变量并且通过局部变量返回函数值的方案来了
感谢小游戏可视化体验官群中的一位叫做“@天羽地王”的朋友提供的思路。本文内容主要包括如何在函数中使用局部变量并且通过局部变量来返回函数的结果值。
7 0
微信小游戏推广运营专业术语汇总
本文内容包括与微信小游戏运营推广相关的专业术语的汇总和解释。作为一个游戏开发者,不光要知道如何做游戏,也要知道如何让别人玩自己做的游戏。
4 0
心中有“树”!图文并茂介绍数据结构中常见的树(三)
在前面两篇文章中,我们简要介绍了数据结构中的各种【树】在搜索、数据库等领域的使用场景,希望对大家有所帮助。
10 0
如何在小游戏制作工具中使用云函数
本节试图以最简单的方式带你了解如何在小程序后台申请和开通云开发服务,创建并编写第一个云函数并在小游戏制作工具中对其进行调用。
9 0
+关注
10145
文章
0
问答
文章排行榜
最热
最新
相关电子书
更多
OceanBase 入门到实战教程
立即下载
阿里云图数据库GDB,加速开启“图智”未来.ppt
立即下载
实时数仓Hologres技术实战一本通2.0版(下)
立即下载