学习shell(二)
- 条件分支: (条件表达式的中括号里面 空格不可以省略)
if [ = ]
then
echo '2 = 2';
else
echo '2 != 2';
fi
# 上面的代码不使用缩进, 并不会出错, 但不应该这样使用
# 上面的显然使用的是回车作为命令结束符, 那么如果把上面的几行代码放在一行, if 条件表达式后面必须加上分号, 否则会报错 例如:
if [ = ]; then echo '2 equal 2'; else echo '2 != 2'; fi
# 如果非要 写在一行, 标红的分号 必须要写 , 其实只要保持良好的编码习惯, 该缩进就缩进, 换行的换行, 根本不需要考虑上面的问题 - read 命令从标准输入中读取一行,并把输入行的每个字段的值指定给 shell 变量. 他和$0 $1 这种的区别是, $0 是在执行文件的时候, 一起传入参数, 如果没传入参数, 那就没有参数了, 而 read 是运行脚本文件后会提示用户输入内容, 获取的是用户输入的内容
- ./test.sh 和 bash test.sh 功能相同. 当文件中使用read读取用户输入时, 使用 sh test.sh执行文件会报错, 而使用bash 则不会报错. 有待解决.
./test.sh 和 bash test.sh 在子进程中执行, . ./test.sh 和 source ./test.sh 在当前进程中执行. 使用./test.sh 执行shell脚本文件, 文件必须有执行权限, 但是使用 bash 或者 sh 或者source 或者 . ./test.sh 的时候, 文件可以没有执行权限, 只需要有可读权限即可运行 - 开启转义:
# 使用 -e 开启转义
echo -e "this is \n is"; #会换行
echo -e 'that is \n is'; #会换行
echo "these are \n is"; #不会换行
echo here \n is; #不会换行
echo -e `here \n is`; #会报错, here command not found ,反引号是配合命令使用的
# 结论是: 使用 -e 开启转义, 并且转义字符在引号中,无论单引号还是双引号都可以转义, 不使用 -e 或者转义不在引号中, 都不可以转义, 比如:
echo ttt '\n' ttt # 这样也是可以换行的 - 把显示的结果导入到文件中(不能够追加的)
#!/bin/sh
echo "It is a test" > myfile #这个文件无论执行多少次, myfile文件中都只有一行内容
学习shell(二)的更多相关文章
- Shell脚本的学习(二)
Shell脚本的学习(二) 方法: 1) 一个计算器: 2)递归实现打印目录 3)方法调用
- 学习笔记:CentOS7学习之二十五:shell中色彩处理和awk使用技巧
目录 学习笔记:CentOS7学习之二十五:shell中色彩处理和awk使用技巧 25.1 Shell中的色彩处理 25.2 awk基本应用 25.2.1 概念 25.2.2实例演示 25.3 awk ...
- 学习笔记:CentOS7学习之二十:shell脚本的基础
目录 学习笔记:CentOS7学习之二十:shell脚本的基础 20.1 shell 基本语法 20.1.1 什么是shell? 20.1.2 编程语言分类 20.1.3 什么是shell脚本 20. ...
- Shell 学习(二)
目录 Shell 学习(二) 1 设置环境变量 1.1 基本语法 1.2 实践 2 位置参数变量 2.1 介绍 2.2 基本语法 2.3 位置参数变量应用实例 3 预定义变量 3.1 基本介绍 3.2 ...
- 学习Shell脚本编程(第2期)_编写修改权限及执行Shell程序的步骤
编写Shell程序 执行Shell程序 Shell程序有很多类似C语言和其他程序设计语言的特征,但是又没有程序语言那样复杂.Shell程序是指放在一个文件中的一系列Linux命令和实用程序.在执行的时 ...
- scrapy爬虫学习系列二:scrapy简单爬虫样例学习
系列文章列表: scrapy爬虫学习系列一:scrapy爬虫环境的准备: http://www.cnblogs.com/zhaojiedi1992/p/zhaojiedi_python_00 ...
- Docker学习(二): 镜像的使用与构建
特别声明: 博文主要是学习过程中的知识整理,以便之后的查阅回顾.部分内容来源于网络(如有摘录未标注请指出).内容如有差错,也欢迎指正! =============系列文章============= 1 ...
- Linux学习之二-Linux系统的目录结构
Linux学习之二-Linux系统的目录结构 在Linux的根目录下,有很多的目录,但是需要记住,对于Linux而言,一切皆文件.因此此处的目录也是文件.用ls / 命令就能看到根目录下的各类不同的目 ...
- 鸟哥的Linux私房菜-第10/11/12/13章(vim程序编辑器、学习bash、正则表达式与文件格式化处理、学习Shell Scripts)
第10章 vim程序编辑器 可以将vim看做vi的进阶版本,vim可以用颜色或底线等方式来显示出一些特殊的信息. 为何要学习vim?因为: a. 所有的 Unix Like 系统都会内建 vi 文书编 ...
随机推荐
- 洛谷 P4137 Rmq Problem/mex 题解
题面 首先,由于本人太菜,不会莫队,所以先采用主席树的做法: 离散化是必须环节,否则动态开点线段数都救不了你: 我们对于每个元素i,插入到1~(i-1)的主席树中,第i颗线段树(权值线段树)对于一个区 ...
- go 常量
// 参考:https://studygolang.com/articles/15905?fr=sidebar // iota迭代定义常量 //const配合iota关键字使用,可以定义一组由0开始+ ...
- (转)关于Android中为什么主线程不会因为Looper.loop()里的死循环卡死?引发的思考,事实可能不是一个 epoll 那么 简单。
( 转载请务必标明出处:http://www.cnblogs.com/linguanh/, 本文出自:[林冠宏(指尖下的幽灵)的博客]) 前序 本文将会把一下三个问题阐述清楚以及一个网上的普遍观点的补 ...
- 位运算解决“一个数组中,只有一个数字出现n次,其他数字出现k次”问题
转自:https://blog.csdn.net/monster_girl/article/details/52928864 在学习完位操作后,经常会遇到一类关于查找缺失整数的问题. 第一类是给你一个 ...
- C Looooops
看了半天的同余 扩展欧几里得 练练手 C Looooops Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 27079 A ...
- 16-Perl 文件操作
1.Perl 文件操作Perl 使用一种叫做文件句柄类型的变量来操作文件.从文件读取或者写入数据到文件需要使用文件句柄.文件句柄(file handle)是一个I/O连接的名称.Perl提供了三种文件 ...
- 转:idea类名出现了不同的颜色
转:https://blog.csdn.net/yf_mood/article/details/88191818 在安装了git以后发现idea类名出现了不同的颜色,如下: 它们分别表示的含义: 绿色 ...
- ubuntu下安装vue/cli提示No command 'vue' found
通过官方指令 npm install -g @vue/cli 安装vue脚手架提示: No command 'vue' found, did you mean: Command 'vpe' from ...
- Spring MVC之@RequestParam @RequestBody @RequestHeader 等详
Spring MVC之@RequestParam @RequestBody @RequestHeader 等详 引言: 接上一篇文章,对@RequestMapping进行地址映射讲解之后,该篇 ...
- DevOps与Kubernetes 、容器的关系
近两年,随着容器.Kubernetes 等技术的兴起,DevOps 这个概念被广泛提及并被大量使用. 本文将会从以下几个方面着手,结合实验展现的方式,让读者真正理解 DevOps 的含义. DevOp ...