加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

bash – 在shell脚本中的临时目录中的临时操作

发布时间:2020-12-16 01:27:56 所属栏目:安全 来源:网络整理
导读:我需要一个新的临时目录来在 shell脚本中做一些工作.当工作完成(或者如果我中途失效),我希望脚本改回旧的工作目录,并将其暂时删除.在 Ruby中,它可能如下所示: require 'tmpdir'Dir.mktmpdir 'my_build' do |temp_dir| puts "Temporary workspace is #{temp_
我需要一个新的临时目录来在 shell脚本中做一些工作.当工作完成(或者如果我中途失效),我希望脚本改回旧的工作目录,并将其暂时删除.在 Ruby中,它可能如下所示:
require 'tmpdir'

Dir.mktmpdir 'my_build' do |temp_dir|
  puts "Temporary workspace is #{temp_dir}"
  do_some_stuff(temp_dir)
end

puts "Temporary directory already deleted"

在Bash脚本中要做的最好的打击是什么?

这是我目前的实现.任何想法或建议?

here=$( pwd )
tdir=$( mktemp -d )
trap 'return_here' INT TERM EXIT
return_here () {
    cd "$here"
    [ -d "$tdir" ] && rm -rf "$tdir"
}

do_stuff # This may succeed,fail,change dir,or I may ^C it.
return_here
干得好:
#!/bin/bash
TDIR=`mktemp -d`

trap "{ cd - ; rm -rf $TDIR; exit 255; }" SIGINT

cd $TDIR
# do important stuff here
cd -

rm -rf $TDIR

exit 0

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读