linux shell 编程
shell的作用
- shell是用户和系统内核之间的接口程序
- shell是命令解释器
shell程序
Shell程序的特点及用途:
shell程序可以认为是将shell命令按照控制结构组织到一个文本文件中,批量的交给shell去执行
不同的shell解释器使用不同的shell命令语法
shell程序解释执行,不生成可以执行的二进制文件
可以帮助用户完成特定的任务,提高使用、维护系统的效率
Shell使用解释型语言,不需重新编译
它适合于编写执行相对简单的任务的工具,因为它更强调易于配置、维护和可移植性
它不适合用来完成时间紧迫型和处理器忙碌型的任务
变量
变量是弱类型的
- 声明变量不用声明类型
- 可以存储不同类型的内容
- 大小写区分
变量声明及赋值格式
格式:变量=值 (注意:等号两侧不能有空格)
例如:
- a=”hello world”
- a=hello world
- b=9
变量的引用
格式:
- $变量名
- ${变量名}
变量名为一个字符用方式1,变量名多于一个字符建议用方式2
例子:
- a=1
- abc=“hello”
- echo $a
- echo ${abc}
- 如果字符串里包含空格,就必须用引号把它们括起来
- 等号两边不能有空格!!!
- 默认情况下,所有输入的内容都是字符串
单引号,双引号,倒引号
倒引号括起来的字符串被shell解释为命令行,在执行时shell会先执行该命令行,并以它的标准输出结果取代整个倒引号部分
由单引号括起来的字符都作为普通字符出现
如果在参数中包含一个或多个空白字符,必须给参数加双引号。如果把一个带有$字符的变量放在双引号中,程序执行到该行时会把变量替换为它的值.
可用\字符取消$ 的特殊含义 \ $
位置变量
bash在解释用户命令时,会把所输入的命令后面的参数使用位置变量传递给bash脚本程序
$1、$2…$n分别代表参数1、参数2…参数n
$0则代表脚本的名字
有关位置变量还有另外三个。
- $*:这个变量包括参数的列表(字符串)。
- $@:这个变量包括参数的列表(数组)。
- $#:这个变量包括参数的个数。
环境变量
Shell运行时自动设置的一些变量称为环境变量,由Shell维护和管理。
只在shell程序中可用的变量
数学表达式
条件判断
常见的条件:
- 变量属性;
- 文件属性;
- 命令执行结果;
- 多种条件的逻辑组合;
判断结果的一般定义: - 真:0
- 假:1
格式: - test condition
- [ condition ] #[右边和]左边需要有空格
控制结构
常见分支结构:
- if
#!/bin/bash
echo -n "Please input a directory:”
read dir
if cd ${dir} > /dev/null 2>&1;then
echo "enter directory $dir successed”
else
echo "enter directory $dir failed”
fi
Linux系统里执行的每一个程序都有标准输入/标准输出/错误输出三个通道。
Linux所有的设备都是以文件的形式出现,因此,这里提到的三个通道,实际上就是三个文件。
- 文件描述符 0 : 标准输入
- 文件描述符 1 : 标准输出
- 文件描述符 2 : 错误输出
find / -name "cd" 1> stdout.txt 2> errout.txt
&:取地址
> /dev/null 等价于1>/dev/null把标准输出的内容输出到垃圾箱
2 > &1 把错误输出的内容输出到标准输出的地址
- case
模式的匹配可以使用通配符 - ?:仅匹配一个字符
- *:匹配任意字符
- […]:配置方括号中的任意一个字符
- [!..] : 不匹配方括号中的任意字符
- [a-zA-Z] : -指定一个取值范围
常见循环结构:
- for
#!/bin/bash
echo "Input a directory:”
read dir
for file in `ls $dir`
do
echo $file
done
- while
- until
linux shell 编程相关推荐
- Linux Shell 编程学习总结
Shell 教程 Shell简介:什么是Shell,Shell命令的两种执行方式 Shell本身是一个用C语言编写的程序,它是用户使用Unix/Linux的桥梁,用户的大部分工作都是通过Shell完成 ...
- linux实验三shell程序设计,实验三 LINUX SHELL编程
精选文库 -实验三LINUX SHELL 编程 四.实验内容 本实验包含两个具体的SHELL程序编写任务,较为全面地涉及了SHELL 程序的设计方法和技术.内容如下: 1.创建以下菜单程序: USER ...
- linux —— shell 编程(文本处理)
导读 本文为博文 linux -- shell 编程(整体框架与基础笔记)的第4小点的拓展.(本文所有语句的测试均在 Ubuntu 16.04 LTS 上进行) 目录 基本文本处理 流编辑器sed a ...
- 【“计算机科学与技术”专业小白成长系列】Linux Shell 编程 极简教程
Linux Shell 编程 极简教程 内容摘要 本文是 Linux Shell 编程简单入门.主要内容: Linux 简介 Shell 编程入门 Kotlin 脚本与 Shell 脚本 Linux ...
- 《Linux Shell编程从初学到精通(第2版)》pdf
下载地址:网盘下载 内容简介 编辑 shell是用户与内核进行交互操作的一种接口,是linux最重要的软件之一.目前最流行的shell称为bash shell,bash shell脚本编程以其简洁.高 ...
- linux简单重定向代码,Linux Shell编程(26)——代码块重定向
像 while, until, 和 for 循环代码块, 甚至 if/then 测试结构的代码块都能做到标准输入的重定向. 即使函数也可以使用这种重定向的格式 .所有的这些依靠代码块结尾的 < ...
- Linux Shell编程语句case
Linux Shell编程case语句 case语句 case语句适用于需要进行多重分支的应用情况. case分支语句的格式如下:case $变量名 in模式1)命令序列1;;模式2)命令序列2;; ...
- linux shell 处理日语,linux —— shell 编程(文本处理)
导读 本文为博文linux -- shell 编程(整体框架与基础笔记)的第4小点的拓展.(本文所有语句的测试均在 Ubuntu 16.04 LTS 上进行) 1.基本文本处理 sort:用于排序,常 ...
- linux怎么退出shell编程,Linux Shell编程(11)——退出和退出状态
exit命令一般用于结束一个脚本,就像C语言的exit一样.它也能返回一个值给父进程. 每一个命令都能返回一个退出状态(有时也看做返回状态).一个命令执行成功返回0,一个执行不成功的命令则返回一个非零 ...
- 「Linux」Linux Shell 编程基础入门
Linux Shell 编程基础入门 1. 变量 1.1 变量定义 1.2 使用变量 1.3 引号 1.4 将命令的结果赋值给变量 1.5 位置参数 1.6 特殊变量及其含义 2. 字符串 2.1 字 ...
最新文章
- C#_Socket网络编程实现的简单局域网内即时聊天,发送文件,抖动窗口。
- 每三个数换行 用C语言表示,关于换行符:使用fscanf()读取每行3个数字的文件,为什么“%d%d%d%* c”和“%d%d%d”一样好?...
- SAP 移动类型详解
- 简单易上手的Bootstrap
- 【击败时间100%】剑指 Offer 38. 字符串的排列
- 如何给SAP Cloud ConnectorRegion列表中添加新的Region
- LeetCode-108将有序数组转换为二叉搜索树
- lucene5 排序
- WinRAR备份技巧 - imsoft.cnblogs
- 计算机局域网中处理器可以共享么,局域网中怎么设置可共享主机的应用程序及CPU资源。...
- python画一棵树的心理测试_心理测验:空白纸上画棵树,破除心防从这里开始
- QQ通信原理及QQ是怎么穿透内网进行通信的?
- TTime::FormatL 详解
- git分支代码提交主干
- python随机生成一个数字_如何实现python随机生成数字?
- 微信预览wx.previewImage黑屏
- 吴恩达机器学习ex2 Logistic Regression (python)
- Spark DataFrame 写入HIve 出现HiveFileFormat`. It doesn't match the specified format `ParquetFileFormat`
- ObjectARX 常见编译错误解决方式记录
- flutter图片上传