shell学习(二)
1、EOF
Shell中通常将EOF与 <<和cat 结合使用,表示后续的输入作为子命令或子Shell的输入,直到遇到EOF为止,再返回到主调Shell。
可以把EOF替换成其他东西,意思是把内容当作标准输入传给程序。一般有两种用法,一种是直接打印在屏幕上,常用的是打印菜单,还
有一种用法是把输入的内容输出到另一个文件中。
1)
[root@localhost sh]# cat <<EOF
> 1)第一个菜单
> 2)第二个菜单
> 3)第三个菜单
> EOF
1)第一个菜单
2)第二个菜单
3)第三个菜单
2)
[root@localhost sh]# cat >>/opt/sh/test.log <<EOF
> 1、请注意你的输入合适
> 2、我们都是好朋友
> 3、咋们相互合作吧
> EOF
[root@localhost sh]# cat test.log
1、请注意你的输入合适
2、我们都是好朋友
3、咋们相互合作吧
2、$?
表示上一条命令是否执行成功,通过echo $?如果显示是0表示上一个命令执行成功,如果执行结果为非0表示不成功。
[root@localhost sh]# ls -l
total 4
-rw-r--r--. 1 root root 85 Apr 12 03:47 test.log
[root@localhost sh]#
[root@localhost sh]# echo $?
0
[root@localhost sh]# lt -l
-bash: lt: command not found
[root@localhost sh]#
[root@localhost sh]# echo $?
127
3、两个数字的比较
-eq表示等于 -ne表示不等于 -gt表示大于 -lt表示小于 -ge表示大于等于 -le表示小于等于
[root@localhost sh]# [ 2 -eq 3 ] && echo 0
[root@localhost sh]#
[root@localhost sh]#
[root@localhost sh]# [ 2 -eq 2 ] && echo 0
0
[root@localhost sh]# [ 2 -eq 2 ] && echo 0 || echo 1
0
[root@localhost sh]# [ 2 -eq 3 ] && echo 0 || echo 1
1
[root@localhost sh]# [ 3 -gt 2 ] && echo 0 || echo 1
0
[root@localhost sh]# [ 3 -gt 4 ] && echo 0 || echo 1
1
[root@localhost sh]# [ 3 -lt 4 ] && echo 0 || echo 1
0
[root@localhost sh]# [ 3 -lt 1 ] && echo 0 || echo 1
1
4、比较字符串的方法
[root@localhost sh]# name=lihua
[root@localhost sh]# [[ $name = lihua ]] && echo 0 || echo 1
0
[root@localhost sh]# [[ $name = "lihua" ]] && echo 0 || echo 1
0
[root@localhost sh]#
[root@localhost sh]# [[ $name = "lihua1" ]] && echo 0 || echo 1
1
5、中括号中的判断
[ -z ]判断变量是不是空值
[ ! -z ]判断变量是不是不是空值
[ -d FILE]如果 FILE 存在且是一个目录则为真
[ -f FILE ] 如果 FILE 存在且是一个普通文件则为真。
[root@localhost sh]# name=heruiguo
[root@localhost sh]# [ -z $name ]&& echo 0 ||echo 1
1
[root@localhost sh]# [ ! -z $name ]&& echo 0 ||echo 1
0
6、函数
#!/bin/bash
aaa(){
echo "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
}
aaa
aaa
aaa
aaa
[root@localhost sh]# ./funsco.sh
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
shell学习(二)的更多相关文章
- linux shell学习二
参考:http://www.cnblogs.com/waitig/p/5531463.html Shell注释 Shell中的注释以“#”号开头,所有以“#”号开头的代码都会被解释器所忽略. 比如下面 ...
- Shell 学习(二)
目录 Shell 学习(二) 1 设置环境变量 1.1 基本语法 1.2 实践 2 位置参数变量 2.1 介绍 2.2 基本语法 2.3 位置参数变量应用实例 3 预定义变量 3.1 基本介绍 3.2 ...
- Shell学习之Bash变量详解(二)
Shell学习之Bash变量详解 目录 Bash变量 Bash变量注意点 用户自定义变量 环境变量 位置参数变量 预定义变量 Bash变量 用户自定义变量:在Bash中由用户定义的变量. 环境变量:这 ...
- shell学习总结之自定义函数
shell学习总结之自定义函数 Myfun (){ echo -n "now i is $i " ! [ "$i" ] && exit ; ec ...
- Hbase深入学习(二) 安装hbase
Hbase深入学习(二) 安装hbase This guidedescribes setup of a standalone hbase instance that uses the local fi ...
- shell学习笔记汇总
1.shell脚本中函数使用 函数定义在前,调用在后,顺序反了就没有效果了.函数调用为:函数名 参数列表 函数内部通过以下变量访问函数的参数:shell脚本函数中: $0: 这个脚本的名字 $n: 这 ...
- Shell 学习—AWK介绍
Shell 学习—AWK = = = 安装awk root@kiki-desktop:~/shell# apt-get install gawk gawk-doc = = = awk 是一种程序语言. ...
- shell 学习笔记2-shell-test
一.字符串测试表达式 前面一篇介绍:什么是shell,shell变量请参考: shell 学习笔记1-什么是shell,shell变量 1.字符串测试表达式参数 字符串需要用""引 ...
- Shell 学习(三)
目录 Shell 学习(三) 流程控制 1 if判断 2 case 语句 3 for循环 4 while 循环 2 read 读取控制台输入 2.1 基本语法 2.2 应用实例 3 函数 3.1 系统 ...
- SHELL学习笔记三
SHELL学习笔记一 SHELL学习笔记二 SHELL学习笔记三 for 命令 读取列表中的复杂值 从变量读取列表 从命令读取值 更改字段分隔符 用通配符读取目录 which 使用多个测试命令 unt ...
随机推荐
- caffe多任务、多标签
解决的目标问题:多分类问题,比如车辆的外形和颜色,苹果的大小和颜色:多任务:车牌角点的定位和车牌的颜色.定位在技术上属于回归,车牌颜色判断则属于分类. 技术点 caffe默认是单输入任务单标签的,也就 ...
- python里使用正则表达式的非贪婪模式
在正则表达式里,什么是正则表达式的贪婪与非贪婪匹配 如:String str="abcaxc"; Patter p="ab*c"; 贪婪匹配:正则表达式一般趋向 ...
- 【BZOJ4391】[Usaco2015 dec]High Card Low Card(贪心)
[BZOJ4391][Usaco2015 dec]High Card Low Card(贪心) 题面 BZOJ 题解 预处理前缀后缀的结果,中间找个地方合并就好了. #include<iostr ...
- 团队Git使用教程
团队git使用教程(不要使用IDE自带版本控制功能) 角色分配:项目观察者.项目拥有者.项目开发人员 场景:项目拥有者创建项目 1. 在当前目录新建一个git代码库 git init "te ...
- [学习笔记]nim游戏
普通nim游戏: n堆石子,每个人每次对着一堆拿若干个.不能拿者判输. 只有两种情况,先手必胜,先手必败. 先手必胜当且仅当:a1^a2^...^an!=0 证明: 设=x(x不为0),选择最高位和x ...
- WPF 杂谈——开篇简言
这俩年多来笔者一直在从事关于WPF的开发.虽然不能说是专家级别的.但是对于WPF的应用还是有一定的了解.论他的灵活性决对不在WinForm之下.WPF的出现更是引发一段热议.他的何去何从更是让很多人感 ...
- NameError: name 'reload' is not defined
对于 Python 2.X: import sys reload(sys) sys.setdefaultencoding("utf-8") 对于 <= Python 3.3: ...
- git push --set-upstream
我在本地建了一个分支wangxiao,开发完之后,提交代码 git add .git commit -m '注释'git push 出现下面的问题,这个意思是:当前分支没有与远程分支关联. 因此导致了 ...
- Zephir入门教程一
一.如何安装 zephir-安装和初体验:http://blog.csdn.net/u011142688/article/details/51619811 二.如何使用 需要切到工作目录下,也就是co ...
- Ubuntu 16.04开机自启Nginx简单脚本
本文要记述的是最简单的Ubuntu下开机自启 nginx的脚本 这里将nginx装在了/usr/local/nginx目录下,nginx本身没有注册成服务,所以直接使用服务开机自启是不行的,除非自己写 ...