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的主要内容,如果未能解决你的问题,请参考以下文章