• 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

  • 相关阅读:
    类的空间问题
    面向对象初识
    collections模块,shelve模块
    一段水印文字的练习
    jquery选择器中(:button)的含义
    关于通过jquery来理解position的relative及absolute
    [小明学算法]1.动态规划--最长递增子序列问题
    [小明学算法]2.贪心算法----
    [Unity的序列化]2.技能编辑器的实现
    [Unity的序列化]1.什么是序列化
  • 原文地址:https://www.cnblogs.com/heruiguo/p/8807754.html
Copyright © 2020-2023  润新知