`
莫激动
  • 浏览: 44689 次
社区版块
存档分类
最新评论

处理shell中未赋值变量造成的灾难

阅读更多

在编写shell的时候我们都需要万分小心,尤其是给root执行的脚本

 

 

#!/bin/bash
....
rm -rf $1/$2/bin/
....

 

 

假设上述脚本我执行的时候没有传递参数,造成的后果是相当恐怖的。

 

 

有没有好的办法解决这个问题,答案是有的

 

 

#!/bin/bash
....
if [ !$1 ];
   echo '$1 is null'
   exit 1
fi
if [ !$2 ];
   echo '$1 is null'
   exit 1
fi
rm -rf $1/$2/bin
....

 

 

难道我们在使用变量之前,都要判断是否为null,这样太繁琐了,有没有更好的解决办法,答案依然是有的

 

#!/bin/bash
set -u
....
rm -rf $1/$2/bin
....

 

当设置set -u 后,使用未赋值的变量时shell将自动退出

 

0
0
分享到:
评论

相关推荐

    Shell脚本定义变量和重新赋值

    可以使用`help`命令查看Shell中的保留关键字列表。 以下是一些符合命名规则的示例: ```bash # 符合命名规则的示例 first_name="Tom" last_name="Jerry" full_name="Tom_Jerry" ``` #### 三、使用花括号来界定...

    shell基础之环境变量 位置参数变量 预定义变量

    本文将深入探讨Shell中的三种主要变量类型:用户自定义变量、环境变量和位置参数变量,以及预定义变量。 1. **用户自定义变量**: 用户自定义变量是我们在Shell会话或脚本中创建的局部变量,它们只在当前的Shell...

    linux超级基础系列——shell变量(本地变量和环境变量

    最后,Linux shell中还存在特殊变量,这些变量通常是只读的,并且在脚本中用来接收命令行参数。例如,`$1`、`$2`、`$3` 等分别用来接收脚本运行时传入的第一个、第二个、第三个参数。 在编写shell脚本时,合理利用...

    shell编程.doc(变量 用户定义变量,环境变量,位置变量(shell 参数) )

    Shell中的保留字符有特殊含义,例如`$`用于引用变量,`|`用于管道连接命令,`#`开始注释,`&`使命令在后台执行,`*`和`?`作为通配符,`>`和`>>`进行输出重定向,``用于命令替换等。 总的来说,Shell编程是一种强大...

    从数据库中取变量传递给shell,生成环境变量

    从DB中取检索值传递给shell,生成环境变量 1. 编写myshellpara.sql 通过spool 执行一个SQL读取所要的值,结果保存在myshellvar_export.sh set feedback off; set heading off; set pagesize 0; set linesize 1000; ...

    shell变量,具体的

    ### Shell 变量详解 #### 一、Shell变量概述 Shell变量是Shell脚本编程的基础之一,...通过以上详细介绍,我们了解了Shell变量的基本概念、赋值方式、引用方法以及变量的种类,这对于编写有效的Shell脚本非常关键。

    shell编程基础之变量

    在Shell中,无需预先声明变量的类型,可以直接给变量赋值。例如,`NAME="John"` 创建了一个名为`NAME`的变量,并将其值设置为"John"。变量名是大小写敏感的,所以`name`与`NAME`被视为不同的变量。 2. **变量类型*...

    linux超级基础系列——shell变量(本地变量和环境变量).pdf

    shell 变量是 Linux 系统中的一种重要概念,它允许用户存储和重复使用有用的信息,提高工作效率。shell 变量可以分为本地变量和环境变量两种。 什么是 shell 变量 shell 变量是存储在系统中的可读写存储单元。...

    深入_Shell_变量操作

    深入探讨Shell变量操作:变量替换扩展与字符串处理 在Linux Shell编程中,变量操作是构建高效、灵活脚本的关键技能之一。本文将深入探讨Shell变量的高级操作技巧,特别是变量替换扩展和字符串处理,旨在帮助读者...

    linux超级基础系列-shell变量(本地变量和环境变量)

    本文介绍了Linux Shell中的本地变量和环境变量的概念及其基本用法。本地变量仅在当前Shell环境中有效,而环境变量则在整个系统范围内有效。通过合理的定义和使用这些变量,可以极大地提高Shell脚本的灵活性和可维护...

    shell脚本入门-变量、字符串, Shell脚本中变量与字符串的基础操作教程

    内容概要:shell脚本入门——变量、字符串, 本文详细介绍了 Shell 脚本中变量和字符串的基本操作,包括变量的定义、使用和作用域,以及字符串的定义、操作和拼接。通过具体的代码示例,解释了如何定义和使用变量,...

    shell程序设计——变量

    在本文中,我们将深入探讨Shell中的变量,包括它们的定义、类型、赋值、使用以及相关的命令。 ### 一、变量的定义 在Shell编程中,变量是用来存储数据的容器。它们可以用来保存文本字符串、数字或其他类型的值。在...

    SHELL JAVA环境变量配置脚本

    linux初学者写的小脚本,用来配置JAVA环境变量,纯属练手,不喜勿喷

    shell变量与创建子shell详解

    例如,在父Shell中定义一个变量并尝试在子Shell中访问该变量时,如果没有事先导出,子Shell将无法识别该变量。 Shell变量导出的用法对于管理和维护环境变量至关重要。如果需要在脚本中使用的变量,应确保在调用子...

    day1shell编程简介以及变量shell编程.txt

    day1shell编程简介以及变量shell编程.txt

    linux运维学习笔记:Shell变量.pdf

    Shell中,变量赋值可以使用单引号、双引号或不使用引号。不包含空格的简单字符串通常不需要引号。双引号允许变量扩展,即Shell在解析时会将其中的变量替换为实际值。单引号则保留字面意义,即变量名会被当作普通字符...

    linux中shell变量.pdf

    Linux Shell 变量是 Linux 命令行中非常重要的一部分,它们可以帮助用户更方便地执行任务和管理系统。下面我们将详细解释 Linux Shell 变量的概念和使用方法。 一、shell 变量的概念 Shell 变量是 Linux Shell 中...

    shell变量学习

    在Shell编程中,变量是存储数据的基本单元,它们可以帮助我们保存和处理各种信息。本文主要探讨了Shell变量的使用、赋值、显示、删除以及一些特殊的操作。 1. **本地变量** 本地变量仅在当前Shell会话中有效,不会...

Global site tag (gtag.js) - Google Analytics