$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  输出记录分隔符,默认为换行符\n
          RS  输入记录分隔符,默认为换行符\n

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

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

awk 'print FNR,NR' a.txt b.txt

Linux dirname $0 source if的更多相关文章

  1. Linux下0号进程的前世(init_task进程)今生(idle进程)----Linux进程的管理与调度(五)【转】

    前言 Linux下有3个特殊的进程,idle进程(PID = 0), init进程(PID = 1)和kthreadd(PID = 2) idle进程由系统自动创建, 运行在内核态 idle进程其pi ...

  2. linux的0号进程和1号进程

    linux的 0号进程 和 1 号进程 Linux下有3个特殊的进程,idle进程(PID = 0), init进程(PID = 1)和kthreadd(PID = 2) * idle进程由系统自动创 ...

  3. Kali Linux 2.0配置并安装常用的工具

    Kali Linux 前身是著名渗透测试系统BackTrack ,是一个基于 Debian 的 Linux 发行版,包含很多安全和取证方面的相关工具. Kali Linux 2.0是基于Debian ...

  4. Unix/Linux环境C编程入门教程(19)Red Hat Entetprise Linux 7.0环境搭建

    位架构,包括英特尔X-86_64.Power和s390.动态定时能力将降低内核内部中断数量,Open vSwitch 2.0功能可调节虚拟机之间的流量.RHEL 7中默认的文件系统是XFS,包含了一个 ...

  5. 关于kali linux 2.0的vmware tools的安装问题

    在安装好kali linux 2.0 后,首先要做的就是添加源并更新系统,否则会出现软件定位问题. 在kali 2.0中,vmware tools已经不能使用了,官方放了一个工具下载安装就好. 添加源 ...

  6. 如何在 Docker 容器中运行 Kali Linux 2.0

    https://linux.cn/article-6103-1.html Kali Linux 是一个对于安全测试人员和白帽的一个知名操作系统.它带有大量安全相关的程序,这让它很容易用于渗透测试.最近 ...

  7. 跨年呈献:HP-Socket for Linux 1.0 震撼发布

    三年,三年,又三年,终于,终于,终于不用再等啦!就在今天,HP-Socket for Linux v1.0 震撼发布!还是一样的接口,一样的高效,一样的简便,一样的味道.     HP-Socket ...

  8. linux中fork, source和exec的区别

    转:linux中fork, source和exec的区别 shell的命令可以分为内部命令和外部命令. 内部命令是由特殊的文件格式.def实现的,如cd,ls等.而外部命令是通过系统调用或独立程序实现 ...

  9. (转)S5pv210 HDMI 接口在 Linux 3.0.8 驱动框架解析 (By liukun321 咕唧咕唧)

    作者:liukun321 咕唧咕唧 日期:2014.1.18 转载请标明作者.出处:http://blog.csdn.net/liukun321/article/details/18452663 本文 ...

随机推荐

  1. Array操作方法和String操作方法比较

    Array 的操作方法和 String 的操作方法老是弄混>_<,下面就对于这两个对象的常用操作方法进行比较~~ Array ☞ 操作方法 concat():returns a new a ...

  2. JS操作DOM常用API总结

    <JS高程>中的DOM部分写的有些繁琐,还没勇气整理,直到看到了这篇博文 Javascript操作DOM常用API总结,顿时有了一种居高临下,一览全局的感觉.不过有时间还是得自己把书里面的 ...

  3. php 在客户端生成txt文件并且下载

    在访问php时生成txt文件 $filename = 'file.text'; //也可以是其他后缀格式的 $ua = $_SERVER["HTTP_USER_AGENT"]; f ...

  4. python 的 class

    虽然python OOP 是可选的,但是尽可能使用OOP, 可以让你的代码更精简,容易理解. python 中大多数OOP故事, 都可简化为这个表达式: object.attribute 类的建立使用 ...

  5. linux 安装redis

    1:首先命令行下载安装包 wget http://download.redis.io/releases/redis-2.8.13.tar.gz 2:进行解压 tar xzf redis-2.8.13. ...

  6. 如何区分JS中的this?!

    ->我们一般只研究函数执行的时候里面的this->this是谁和当前的函数在哪执行和在哪定义没有半毛钱的关系 1)看函数执行的时候,函数名之前是否有".",有的话&qu ...

  7. My97DatePickerBeta 时间选择控件用法

    用法说明:只需要调用一个js<script language="javascript" type="text/javascript" src=" ...

  8. 学习使用:before和:after伪元素

    http://www.w3cplus.com/css3/learning-to-use-the-before-and-after-pseudo-elements-in-css.html

  9. magic矩阵

    魔方矩阵 魔方矩阵是有相同的行数和列数,并在每行每列.对角线上的和都相等.你能构造任何大小(除了2x2)的魔方矩阵. 1.历史       魔方又称幻方.纵横图.九宫图,最早记录于我国古代的洛书.据说 ...

  10. hihoCoder挑战赛23

    hihoCoder挑战赛23 A.Emulator 题意 给一张图,有\(N(N \le 300)\)个点, 给出任意两点之间的最短路. 求最多可以去掉多少条边,使得任意两点的最短路长度不变. 思路 ...