• shell编程之基础


    1、初探shell


    #!/bin/bash
    echo -e 'hello 
    world'

    执行结果

    echo 是打印输出字符,-e选项是开启转义功能

    注意:

    在windows下编写的shell脚本直接拿到linux下是无法执行的,因为两个的行结束标志不同

    • 直接将windows下的文件copy到linux,查看其格式

      

      在图中的bash后面是一个回车,通过cat -A 来查看文件中所有字符时可看到这个回车是^M$

    • 查看linux下的回车

      

    两个的行结束标志不同,所以会导致shell脚本执行不成功

    • 解决方式,通过dos2unix来进行格式转换

      

    2.历史命令



    • 执行history

      

      想要执行哪条命令使用 !行号

      甚至用!字符串,如!hist都可以执行该命令

    3.输出重定向


     

    • cat hello.sh > he.sh将标准输出重定向到he.sh,先清空he.hs再将结果输出到he.sh

    • cat hello.sh >> he.sh 以追加的方式输出到he.sh中
    • cat hello.sh 2> he.sh 将标准出错输出到文件中
    • cat hello.sh  &>  hello.sh 将正确和错误都写到文件中
    • ls >> tfg 2>>efg   将命令的正确结果保存到tfg,将错误结果保存早efg中

     4.shell中的通配符


     

    特殊字符

      ‘bbb bbb$name’   单引号中的字符都被认为是普通字符

      “bbbb bbb$name”  双引号中的字符被赋予特殊含义,如 表示转义,$name表示一个变量

          $() 将会引用系统命令,如 echo $(date) 与 date的效果一样

    5.shell中的变量


    • 变量值的拼接

      name =  123

      name = ${name}456

      这时name的值为123

    • 接受用户向sh脚本中传递的值

      

      一个简单的例子

      

      

      这里进行了数字相加运算,两个变量在数值相加的时候必须使用$(())将其包起来

    •  $* 与 $@

      $*是将输入参数看成一个整体,像字符串;而$@将参数分开对待,就像一个数组

      

      

     6、预定义变量


      

      

      代码中的& 是让find命令在后台运行

      

     

  • 相关阅读:
    ABP之模块分析
    AutoMapper之ABP项目中的使用介绍
    Castle Windsor常用介绍以及其在ABP项目的应用介绍
    EasyUI实战经验总结,给有需要的人
    无法发送具有此谓词类型的内容正文
    ADO.NET 新特性之SqlBulkCopy
    SVN无法Cleanup
    Mac使用操作
    Mac下的Mysql无法登陆的问题
    mac 终端 常用命令
  • 原文地址:https://www.cnblogs.com/xidongyu/p/5530447.html
Copyright © 2020-2023  润新知