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学习(二)的更多相关文章

  1. linux shell学习二

    参考:http://www.cnblogs.com/waitig/p/5531463.html Shell注释 Shell中的注释以“#”号开头,所有以“#”号开头的代码都会被解释器所忽略. 比如下面 ...

  2. Shell 学习(二)

    目录 Shell 学习(二) 1 设置环境变量 1.1 基本语法 1.2 实践 2 位置参数变量 2.1 介绍 2.2 基本语法 2.3 位置参数变量应用实例 3 预定义变量 3.1 基本介绍 3.2 ...

  3. Shell学习之Bash变量详解(二)

    Shell学习之Bash变量详解 目录 Bash变量 Bash变量注意点 用户自定义变量 环境变量 位置参数变量 预定义变量 Bash变量 用户自定义变量:在Bash中由用户定义的变量. 环境变量:这 ...

  4. shell学习总结之自定义函数

    shell学习总结之自定义函数 Myfun (){ echo -n "now i is $i " ! [ "$i" ] && exit ; ec ...

  5. Hbase深入学习(二) 安装hbase

    Hbase深入学习(二) 安装hbase This guidedescribes setup of a standalone hbase instance that uses the local fi ...

  6. shell学习笔记汇总

    1.shell脚本中函数使用 函数定义在前,调用在后,顺序反了就没有效果了.函数调用为:函数名 参数列表 函数内部通过以下变量访问函数的参数:shell脚本函数中: $0: 这个脚本的名字 $n: 这 ...

  7. Shell 学习—AWK介绍

    Shell 学习—AWK = = = 安装awk root@kiki-desktop:~/shell# apt-get install gawk gawk-doc = = = awk 是一种程序语言. ...

  8. shell 学习笔记2-shell-test

    一.字符串测试表达式 前面一篇介绍:什么是shell,shell变量请参考: shell 学习笔记1-什么是shell,shell变量 1.字符串测试表达式参数 字符串需要用""引 ...

  9. Shell 学习(三)

    目录 Shell 学习(三) 流程控制 1 if判断 2 case 语句 3 for循环 4 while 循环 2 read 读取控制台输入 2.1 基本语法 2.2 应用实例 3 函数 3.1 系统 ...

  10. SHELL学习笔记三

    SHELL学习笔记一 SHELL学习笔记二 SHELL学习笔记三 for 命令 读取列表中的复杂值 从变量读取列表 从命令读取值 更改字段分隔符 用通配符读取目录 which 使用多个测试命令 unt ...

随机推荐

  1. Winform Treeview 排序及图标处理

      一.排序 1. 继承 IComparer 2.  treeView1.TreeViewNodeSorter = this; 3. 实现IComparer public int Compare(ob ...

  2. Java实现的一个简单的模板渲染

    代码 package com.hdwang; import java.util.HashMap; import java.util.Map; /** * Created by hdwang on 20 ...

  3. 51 nod 1200 石子游戏V2 FWT

    放模板 #include<bits/stdc++.h> #define N 100005 using namespace std; const int p = 1000000007; in ...

  4. Linux上查找

    locate 用法:locate filename locate是Linux系统中的一个查找(定位)文件命令,和find命令等找寻文件的工作原理类似,但locate是通过生成一个文件和文件夹的索引数据 ...

  5. JAVA记录-JSP指令

    JSP中有三种类型的指令标签 - 序号 指令 说明 1 <%@ page ... %> 定义页面相关属性,如脚本语言,错误页面和缓冲要求. 2 <%@ include ... %&g ...

  6. windows10 升级1803后,远程错误提示“出现身份验证错误,要求的函数不受支持 CredSSP 加密 Oracle修正”的解决办法

    远程出现错误提示:出现身份验证错误,要求的函数不受支持 CredSSP 加密 Oracle修正 运行 gpedit.msc 本地组策略: 计算机配置>管理模板>系统>凭据分配> ...

  7. .NET面试题系列(九)C# 结构体与类的区别

    谈一下什么时候使用结构,什么使用类. 我们知道,结构存储在栈中,而栈有1个特点,就是空间较小,但是访问速度较快,堆空间较大,但是访问速度相对较慢.所以当我们描述1个轻量级对象的时候,可以将其定义为结构 ...

  8. CSS reset--(来自网易)

    /* reset */ html,body,h1,h2,h3,h4,h5,h6,div,dl,dt,dd,ul,ol,li,p,blockquote,pre,hr,figure,table,capti ...

  9. javascript命名空间

    命名空间:命名空间有助于减少程序中所需要的全局变量的数量,并且同时还有助于避免命名冲突或过长的名字前缀. 板栗: var MYAPP = MYAPP || {}; MYAPP.namespace = ...

  10. 第8月第12天 python json.dumps danmu

    1.json.dumps return JsonResponse({ 'status': WechatMessage.POST_METHOD_REQUIRED[1], 'status_code': W ...