美文网首页
Linux编写SHELL实用提示

Linux编写SHELL实用提示

作者: 向杨垫下 | 来源:发表于2017-10-20 10:48 被阅读0次

SHELL实用技巧

当脚本失败时退出

有时某个命令失败,还会继续执行下去,可能最终导致逻辑错误。当执行出错,实用下面语句退出脚本:

# let script exit if command fails
set -o errexit
OR
set -e

实用未声明变量时,退出脚本

实用未声明变量,会导致逻辑错误。当使用未声明变量,使用下面语句退出当前脚本。

# let script exit if an unsed variable is used
set -o nounset
OR
set -u

使用双引号引用变量

引用变量时使用双引号,有助于防止分词(空格)和不必要的全局(识别和扩展通配符):

#!/bin/bash
#let script exit if a command fails
set -o errexit 
#let script exit if an unsed variable is used
set -o nounset
names="Howtoing FOSSMint Linusay"
echo "Names with double quotes" 
echo
for name in "$names"; do
echo "$name"
done
exit 0

使用脚本中的功能

始终记住,使用函数来模块化代码,并使脚本更易读和可重用:

function myfunc() {
    command1;
    command2;
}

使用=进行字符串比较

val1="apple"
val2="banana"
if [ "$val1" = "$val2" ]

命令输出内容替换使用$(command)

命令替换,用其执行结果替换该命令,使用$(command)而不是反引号来进行命令替换

# Wrong
user=`echo "$UID"`

# Right
user=$(echo "$UID")

使用只读来声明静态变量

静态变量的值在脚本中不能被改变

readonly passwd_file="/etc/passwd"
readonly group_file="/etc/group"

使用大写名称为环境变量,小写为自定义变量

所有bash环境变量都以大写字母命名,因此使用小写字母命名自定义变量可以避免冲突

跟踪SHELL脚本中命令的执行

启用SHELL脚本的调试模式

启用脚本调试模式的调试选项:

  1. -v 显示脚本中所有行,会激活详细模式
  2. -n (简称NOEXECexecution),读取所有命令,但不执行它们。此选项激活语法检查模式
  3. -x (简称X跟踪或执行跟踪),告诉SHELL,显示正在执行的所有命令及参数。此选项启用SHELL跟踪模式。

使用SHELL的set内置命令启用调试:
使用set built-in命令调试shell脚本的给定部分,例如函数。这种机制很重要,因为它允许我们在shell脚本的任何段上激活调试。 我们可以打开下面的表单,其中选项是任何调试选项使用set命令调试模式:

options表示上面的调试选项之一或组合
启用调试模式:

set -option

禁用调试模式:

set +option

如果在SHELL脚本中的不同段启用了几种调试模式,也可以用下述方式一次禁用所有调试模式:

set -

SHELL启用调试模式

启用详细调试模式
-v 调试选项,告诉SHELL显示所有行,阅读它们。

命令行用法:

bash -v script.sh

启用语法检查调试模式
-n 激活语法检查调试模式,指示SHELL读取所有命令,但不执行它们,仅检查使用的语法,如果检查出错误,在终端打印,否则不显示任何内容。

命令行用法:

bash -n script.sh

启用跟踪执行调试模式
-x 跟踪Shell脚本中命令的执行。这指示SHELL在终端上执行显示所有命令和参数。

命令行用法:

bash -x script.sh

相关文章

  • Linux编写SHELL实用提示

    SHELL实用技巧 当脚本失败时退出 有时某个命令失败,还会继续执行下去,可能最终导致逻辑错误。当执行出错,实用下...

  • Linux下回车^M去除方法

    在windows上编写的shell、python等脚本在Linux上无法正常的执行,会有 ^M 相关提示,原因 :...

  • Shell命令和Linux命令

    Shell命令和Linux命令 Shell shell是c语言编写的程序,是用户使用linux的桥梁。即是一种命令...

  • 指令随笔

    linux 修改shell脚本的编码 在window下编写的shell脚本编码为dos,在linux环境下不能直接...

  • shell快速学习指南(二)

    Shell 脚本的编写 我们可以直接在shell提示符下编写shell脚本,比如函数、控制语句等都可以直接在she...

  • Linux Shell:Shell脚本常用语法整理

    摘要:Linux,Shell脚本 Shell 是一个用 C语言编写的程序,它是用户使用 Linux 的桥梁,用户通...

  • linux shell 脚本-基础知识(一)

    linux shell 脚本的编写是Linux程序员最基本也是必须学会的技能。这里主要介绍学习shell脚本的基本...

  • Shell 学习笔记

    Shell 学习笔记 Shell 是一个用 C 语言编写的程序,它是用户使用 Linux 的桥梁。Shell 既是...

  • shell脚本

    Shell 是一个用 C 语言编写的程序,它是用户使用 Linux 的桥梁.Shell 脚本(shell scri...

  • mysql数据定时备份

    1.首先明白这里使用shell脚本编写 Shell 是一个用 C 语言编写的程序,它是用户使用 Linux 的桥梁...

网友评论

      本文标题:Linux编写SHELL实用提示

      本文链接:https://www.haomeiwen.com/subject/nrwmuxtx.html