shell

Posted muyi817

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了shell相关的知识,希望对你有一定的参考价值。

shell脚本的建立和执行

linux中,shell脚本通常是在编辑器vi/vim中编写的。

脚本的开头(第一行)

一个规范的脚步的shell脚本的第一行指出 由哪个程序(解释器)来执行脚本中的内容。

#!/bin/bash

或者

#!/bin/sh

开头的#!称为 幻数,在执行bash脚本的时候,会根据“#!”后的解释器来确定该程序用哪个解释脚本中的程序。这一行必须位于第一行。

 shell脚本的执行

当shell脚本以非交互的方式运行时,它会先查找环境变量ENV,该变量指定了一个环境变量(通常是.bashrc,.bash_profile,/etc/bashrc,/etc/profiled等),然后从环境变量开始执行,当读取了ENV文件后,shell才开始执行shell脚本的内容。

crond任务时把系统环境变量在脚本中重新定义!

shell脚本的执行通常可以采用以下三种方式:

1)bash script-name  或  sh script-name(推荐使用)

2)path/script-name  或 ./script-name(当前路径下执行脚本)

3)source script-name 或 . script-name

第一种方式是当脚本文件本身没有可执行权限时常用的方法。

第二种方法需要先将脚本文件的执行权限改为可执行

第三种方法source执行脚本,可以将脚本中的变量的值或函数值传递到当前的父shell脚本中,这是和前两种方法的最大区别。

shell脚本的调试

使用echo命令调试

一般在可能出现问题的脚本重要部分加入echo和exit,然后执行看结果是否和报错有关

bash命令调试参数

 -x 将执行脚本内容及输出显示到屏幕,是对调试很有用的参数

 -n 不执行脚本,只检查语法有没有错误的提示   (用在正式环境不能执行的情况下)

 -v 将脚本输出到屏幕上然后执行脚本,然后输出是否有错误 (一般不用它)

 -x的缺点:会显示一些不想看到的引用的函数执行过程,这些过程没有错误的

set命令调试

 set  –x  set  +x

在脚本中想调试的头尾增加set –x  set +x,然后bash 脚本

以上是关于shell的主要内容,如果未能解决你的问题,请参考以下文章

Shellshell脚本练习

Shellshell 的执行流控制

shellshell-grep -v 排除多个输出结果

Shellshell中的常用基础命令

shellshell中各种括号的作用()(())[][[]]{}

Shellshell脚本中的变量