bash脚本中使用rm命令时的致命误区(bash 脚本)

admin3年前云主机41

测试的shell为bash:
如果在shell脚本中如果使用了一个没有声明的变量,或者是一个声明了但是没有赋值的变量,那么此时脚本不会报错,引用的这个变量也会默认为空,此时,如果脚本中的rm命令的参数刚好使用了这个变量,那么可能会造成不可估计的严重后果,以下为测试场景(注意:下面的脚本不要复制到你的系统上面执行,否则系统就挂了):

场景一:
#!/bin/bash
#
DIRPATH=
rm -rf $DIRPATH/bin/  #使用了一个没有初始化的变量DIRPATH

场景二:
#!/bin/bash
#
rm -rf $DIRPATH/bin/  #使用了一个没有定义的变量DIRPATH

上面两个执行结果是一样的:脚本没报错,/bin目录被删除了,本来是打算删除某个目录下的bin目录,但是却把系统根目录下的bin目录删掉了,那么系统也就挂了,还有一种更加致命的情况,那就是执行rm -rf $DIRPATH/,DIRPATH变量没有声明或者声明了但是没有赋值,那么你的系统根目录就被删掉,后果可想而知!


避免的方法:
提醒一下,在shell脚本中使用到rm命令并且rm命令的参数中有带有变量时,需要特别注意变量名是否与上面声明的保持一致,还有一种做法就是:在引用变量的时候使用下面的方法,可以确保变量不会为空。

比如上面的DIRPATH变量,在引用此变量作为rm的参数的时候,使用如下方式:

rm -rf ${DIRPATH:-default}/bin/
${DIRPATH:-default}:表示如果变量DIRPATH没有被声明或者已经声明,但是赋值为空,那么就使用默认值default,否则就使用DIRPATH初始化的值

关于shell变量的操作,请看这篇 《bash脚本中使用rm命令时的致命误区(bash 脚本)》来自互联网同行内容,若有侵权,请联系我们删除!

免责声明:本文内容来自用户上传并发布,站点仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。请核实广告和内容真实性,谨慎使用。

相关文章

香港服务器租借(香港服务器租借多少钱)

文章目录:1、香港服务器租用有哪几种带宽类型2、租用一台香港服务器的价格区间大概在多少?贵不贵3、为什么很多国内企业选择租用香港服务器?4、租用香港游戏服务器,必须要延迟低的5、香港服务器租用 多少钱...

「Bootstrap CDN让前端开发变得更高效?」

一、简介Bootstrap CDN是一个流行的前端框架,有助于快速构建Web应用程序。Bootstrap具有可扩展的组件和类,可以轻松地实现界面的快速设计和响应式布局。Bootstrap CDN为用户...

服务器上行速度

优化网络体验:如何提升服务器上行速度什么是服务器上行速度服务器上行速度指的是服务器向外发送数据的速度,也称之为上传速度。在互联网应用中,上传速度对于网站、应用和媒体等资源的访问速度都有着重要的影响。因...

越南服务器租赁价格大概多少钱?

越南服务器租赁价格大概多少钱?越南服务器租赁价格通常受以下因素的影响:服务器配置:服务器配置是决定租赁价格的最重要因素之一,包括CPU、内存、硬盘容量等。配置越高的服务器租赁价格越高。托管服务:您可以...

和CPU相比GPU服务器的优点有哪些?江西GPU服务器租用哪里有?

GPU用于快速3-D处理、精确的浮点运算和无错误的数字运算。虽然它们通常以较慢的时钟速度运行,但它们拥有数千个内核,使它们能够同时执行数千个单独的线程。和CPU相比GPU服务器的优点有哪些?顾名思义,...

xshell怎么连接linux

初识XshellXshell是一款强大的SSH和Telnet客户端工具,适用于连接远程Linux服务器,提供了一系列高效的控制台操作和安全连接功能。连接远程Linux服务器打开Xshell,点击“新建...