首页 > 系统相关 >Shell中set -e和if语句的组合使用

Shell中set -e和if语句的组合使用

时间:2024-02-02 15:11:56浏览次数:29  
标签:语句 hdfs Shell hadoop fs echo set folder

shell脚本开头加上set -e命令后,在运行过程中如果出现返回值为非零,整个脚本就可以立刻退出。

假如脚本中有if判断, 很可能if条件的返回值是不为0的。一开始我是把hadoop fs -test -d $hdfs_folder单独写一行的,由于folder不存在,所以脚本直接退出。所以遇到这种情况,需要把有可能是结果返回非0的命令,作为if的条件语句来判断,从而避免和set -e冲突的情况发生。

#!/bin/bash

filename=file.txt

set -e
while read table_row
do    
  if (hadoop fs -test -d $hdfs_folder)
  then
    echo "folder $hdfs_folder to be deleted."
    hadoop fs -rm -r -skipTrash $hdfs_folder

    if [ $? -ne 0 ]
    then
      echo "$path unable to be deleted."
      exit 1
    fi

  else 
    echo "folder $hdfs_folder not exist."
  fi    
done < $filename

  

标签:语句,hdfs,Shell,hadoop,fs,echo,set,folder
From: https://www.cnblogs.com/nn2dw/p/18003200

相关文章

  • Redis - ERR wrong number of arguments for 'hset' command
    这个错误提示通常是因为执行HSET命令时参数数量不正确导致,HSET只能设置一组key/value,设置多组则使用HMSET。HSET命令需要指定三个参数:Hash键、Hash字段和字段值。如果参数数量不正确,Redis服务器将返回"ERRwrongnumberofargumentsfor‘hset’command"错误提示。常见的可......
  • 依赖注入之IConfiguration 访问appSetting.json
    (1)创建NET6Webapi(2)appsettings.json{"Logging":{"LogLevel":{"Default":"Information","Microsoft.AspNetCore":"Warning"}},"AllowedHosts":"*&q......
  • 跟着微软官方学习Powershell-在 PowerShell 中发现命令
    1、说明PowerShell预安装了大量命令。若要有效地使用PowerShell命令,您需要了解它们的工作原理。例如,你需要知道命令所采用的参数,以及可以使用多种方法来调用命令。它还有助于了解命令返回的内容、返回的类型以及命令的属性。通过了解这些事项,你可以配置如何显示帮助。此外,还......
  • Linux下通过AnySetup配置NFS Server
       NFSServer主界面Add(添加配置)AddHost(添加客户端主机) AddHost界面EditHost(修改客户端主机) EditHost界面DeleteHost(删除客户端主机)选中回车要删除的客户端主机,然后选中回车“OK”按钮即可 DeleteHost界面Edit(修改配置)AddHost(添加客户端主机)......
  • mozhe靶场: WebShell文件上传漏洞分析溯源(第5题) 题解(使用哥斯拉)
    哥斯拉由java编写,可以在linux上使用.个人认为比冰蝎好用,用冰蝎连不上这个靶场,但是哥斯拉可以连的上.github搜哥斯拉就能下载首先登陆后台,弱口令adminadmin点击添加文章,尝试上传一句话木马(一句话木马可以点击哥斯拉的生成)webshell.asp<%evalrequest("pass")%>......
  • phpMyAdmin 未授权Getshell
    前言做渗透测试的时候偶然发现,phpmyadmin少见的打法,以下就用靶场进行演示了。0x01漏洞发现环境搭建使用metasploitable2,可在网上搜索下载,搭建很简单这里不多说了。发现phpmyadmin,如果这个时候无法登陆,且也没有前台的漏洞,可以继续在这个phpmyadmin目录下做文章。发现setup......
  • pandas - reset_index() 函数 将Series对象转换为一个新的DataFrame
    #df=pd.read_excel(r"D:\PyCharm\年度数据处理\1月设备离线01.xlsx",sheet_name='Sheet2')#value_counts=df['解除时间'].value_counts().reset_index()#print(value_counts)这段代码的作用是对DataFrame中的"解除时间"列进行值计数,并将结果保存在一个新的DataFrame......
  • shell语句快捷用法
    bat去掉文件名字中的(1)@echooffsetlocalenabledelayedexpansionset"search=(1)"set"replace="for%%fin(*)do(set"filename=%%~nf"set"extension=%%~xf"set"newfilename=!filename:%search%=%replace%!"ren&......
  • shell编程
    1.在/tmp下新建一个名为missing的文件夹。mkdir/tmp/missing2.用man查看程序touch的使用手册mantouch3.用touch在missing文件夹中新建一个叫semester的文件touch用于修改文件的时间属性,如果没有目标文件,则会新建一个目标文件touch/tmp/missing/semest......
  • SQL PARTITION BY 语句把一张表分组后的最大值或最小值插入另一张表里
    1.例子见前一章,目的是有分组的,只显示OrderAmount最高的(即每组只显示一列) 2.再建一个表来存储CREATETABLE[dbo].[MaxOrders]([orderid][int]NULL,[Orderdate][date]NULL,[CustomerName][varchar](100)NULL,[Customercity][varchar](100)NULL,......