zoukankan      html  css  js  c++  java
  • Linux dirname $0 source if

    $SHELL gives the full path to your default shell.

    $0 gives the name of your current shell.

    dirname是一个命令,获取指定文件的路径

    dirname voctrals/test.sh 的结果是voctrals。

    现在就可以解释cd `dirname $0`了。

    进入所运行的shell的目录,这样一来就可以查看目录下的其它文件了,如source。

    source用于引入一个shell文件,类似于java的import或者ruby的require

    他有一个等效的写法就是一个点,"."。

    basename,他的功能是输出当前shell的名称。。。

    bash中方法定义函数的格式

    outinfo () {
      D=$(date '+%F %T')
      echo "<$D>[INFO]${1}"
    }

    调用方法时: outinfo "something for out";

    if,如果if行里面有then的话,then前面需要有分号";"分割。

    不然可以把then换到第二行

    if methodcall parameter; then
      if body
    fi

    if条件判断参照: Other Comparison Operators

    单引号:hard quotes,凡在hard quote中的所有meta均被关闭。

    双引号:soft quotes,在soft quote中的大部分meta都会被关闭,但某些保留(如$)。

    反斜线:,只有紧接在escape(跳脱字符)之后的单一meta才被关闭。

    AWK : 绝壁不是什么缩写,而是Alfred Aho、Peter Weinberger、Brian Kernighan三位作者的首字母

    awk:逐行分析传递过来的文本,以默认的空格或者制表格为分隔符

    awk中有一个默认的变量NF,是传递过来的文本中有多少个字符(以默认字符进行分割)

    管道方式

    #打印文本信息
    echo first second third | awk '{print $0}'
    #打印第二个字符串
    echo first second third | awk '{print $2}'
    #输出文本中字符串的个数
    echo first second third | awk '{print NF}'
    #打印最后一个字符串
    echo first second third | awk '{print $NF}'

    文件方式

    #打印main.sh中每行的第二个元素
    awk '{print $2}' main.sh

    指定分隔符

    #指定冒号:为分隔符,需要紧跟着-F
    awk -F: '{print $1}' voctrals/main.sh
    #另外一种方式
    awk 'BEGIN{FS = ":"} {print $1}' /etc/passwd

    运用正则表达式作为分隔符

    #以one,冒号,空格作为分隔符
    echo  'woonea|aoaoaoaonebboneb:iooneii:' |awk -F'one|:| ' '{print NF}'

    awk内置变量

          ARGC  命令行参数个数
    FILENAME  当前输入文档的名称
             FNR  当前输入文档的当前记录编号,尤其当有多个输入文档时有用
              NR  输入流的当前记录编号
              NF  当前记录的字段个数
              FS  字段分隔符
            OFS  输出字段分隔符,默认为空格
            ORS  输出记录分隔符,默认为换行符
              RS  输入记录分隔符,默认为换行符

    awk能够同时处理两个文件,这就是FNR和NR的区别

    文件a.txt有两行,b.txt有三行,那么以下输出结果为:

    awk 'print FNR,NR' a.txt b.txt
    1 1
    2 2
    1 3
    2 4
    3 5
  • 相关阅读:
    nginx优化之配置文件优化一常用参数
    Centos7+LVS-DR+Apache负载均衡web实验
    LVS负载均衡原理
    Centos7+LVS-NAT+apache实验
    CentOS7.6 使用ceph-deploy部署mimic 13.2.8集群(一)
    linux关闭ACPI电源管理模块
    Jenkins + pipeline + Git + PHP (九)
    Jenkins-Master-slave架构(八)
    Jenkins参数化构建(七)
    Jenkins连接Git仓库时候报错Permission denied, please try again.
  • 原文地址:https://www.cnblogs.com/voctrals/p/4043849.html
Copyright © 2011-2022 走看看